Mental Model
Recursion lets a function call itself to solve smaller parts of a problem, which loops can't do easily when the problem has many layers or branches.
Analogy: Imagine a set of nested Russian dolls where each doll opens to reveal a smaller doll inside. Recursion is like opening each doll one by one until the smallest is found, then closing them back in reverse order. Loops are like walking around a circle repeatedly but can't open nested dolls inside each other.
Function call stack: main -> func1 -> func2 -> func3 -> base case Each arrow means one function calls the next smaller problem. Loop: [Start] -> [Step 1] -> [Step 2] -> [Step 3] -> [End] No nesting, just repeated steps.