Principe
def factorielle(n):
if n <= 1: # cas de base
return 1
return n * factorielle(n - 1) # appel récursif plus petitChaque appel attend le résultat du suivant : c'est la pile d'appels.
Cas d'usage
- Structures en arbre : dossiers, menus, JSON imbriqué, DOM.
- Diviser pour régner : tri fusion, dichotomie.
Limites
Python limite la profondeur (~1 000 appels) : RecursionError. Une boucle est souvent plus simple pour les calculs linéaires. Mémoïsation : @functools.cache évite de recalculer (ex. Fibonacci).