Python Recursion
Satellite · Functions
Recursion
Recursion solves problems that reference smaller subproblems—just remember your base cases and limits.
Template
def factorial(n: int) -> int:
if n <= 1: # base case
return 1
return n * factorial(n - 1) # recursive step
- Always define a base case to terminate recursion.
- Reduce the problem space each call.
Common use cases
- Tree/graph traversal
- Divide-and-conquer algorithms (merge sort, quicksort)
- Backtracking (combinatorial problems)
Recursion limit
import sys
sys.getrecursionlimit() # default ~1000
sys.setrecursionlimit(2000) # adjust cautiously
Use iteration or explicit stacks if you risk deep recursion.