Recursion is when a function calls itself to solve a problem.
It keeps calling itself until a base condition (stopping condition) is reached.
Think of it like repeatedly asking the same question until the answer becomes simple enough to solve.
1οΈβ£ Basic Structure of Recursion
def function_name(parameters):
if base_condition:
return result
else:
return function_name(smaller_problem)
Two important parts:
- Base Case β stops the recursion
- Recursive Call β function calls itself
Example 1: Factorial using Recursion
Factorial formula:n!=nΓ(nβ1)!
Example:
5! = 5 Γ 4 Γ 3 Γ 2 Γ 1
Code
def factorial(n):
if n == 1: # Base condition
return 1
else:
return n * factorial(n-1)print(factorial(5))
Output
120
How it Works
factorial(5)
5 Γ factorial(4)
5 Γ 4 Γ factorial(3)
5 Γ 4 Γ 3 Γ factorial(2)
5 Γ 4 Γ 3 Γ 2 Γ factorial(1)
5 Γ 4 Γ 3 Γ 2 Γ 1
= 120
Example 2: Sum of Numbers
Calculate:
1 + 2 + 3 + ... + n
Code
def sum_numbers(n):
if n == 1:
return 1
else:
return n + sum_numbers(n-1)print(sum_numbers(5))
Output
15
Example 3: Fibonacci Series
Fibonacci pattern:
0 1 1 2 3 5 8 13
Formula:
F(n) = F(n-1) + F(n-2)
Code
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)print(fibonacci(6))
Output
8
β οΈ Important Rule
Every recursive function must have a base case.
Without it, Python will show an error:
RecursionError: maximum recursion depth exceeded
Example of wrong recursion:
def test():
return test()test()
When Recursion is Useful
Recursion is commonly used in:
β’ Factorials
β’ Fibonacci series
β’ Tree structures
β’ File systems
β’ Algorithms (DFS, backtracking)
β Quick Comparison
| Method | Description |
|---|---|
| Loop | Uses for or while |
| Recursion | Function calls itself |