Mental Model
Recursion solves problems by breaking them into smaller copies of itself, while iteration repeats steps using loops. Each works best depending on problem size and clarity.
Analogy: Imagine climbing stairs: recursion is like asking a friend to climb one step and then call another friend to climb the next, passing the task down until the top; iteration is like climbing step by step yourself in a loop.
Recursion stack: main -> func(3) -> func(2) -> func(1) -> base case Iteration loop: start -> step 1 -> step 2 -> step 3 -> end