# रिकर्शन — पायथन

Source: https://www.geekswithgeeks.com/hi/python/py-recursion

> एक फ़ंक्शन जो समस्या को छोटे हिस्सों में तोड़ने के लिए खुद को कॉल करता है।

## बेस केस + रिकर्सिव क़दम

हर रिकर्सिव फ़ंक्शन को रुकने के लिए एक **बेस केस** चाहिए, और उस तक पहुँचने का एक क़दम।

```python
def factorial(n):
    if n <= 1:          # base case
        return 1
    return n * factorial(n - 1)  # recursive step

print(factorial(5))   # 120
```

## रिकर्शन की सीमाएँ

पायथन की डिफ़ॉल्ट रिकर्शन सीमा लगभग 1000 कॉल गहरी है। सामान्य गिनती के लूप के लिए, `for`/`while` अक्सर स्पष्ट और तेज़ होता है।
