Mental Model
Recursion lets a function call itself to solve smaller parts of a problem, which loops can't do easily when the number of steps depends on the problem itself.
Analogy: Imagine a set of nested boxes where each box contains a smaller box inside. To open all boxes, you open the biggest, then the smaller inside it, and so on until the smallest box. This is like recursion, where each step depends on the previous one.
Box1 -> Box2 -> Box3 -> null ā current box being opened
