Mental Model
Recursion solves a problem by calling itself with smaller parts until it reaches a simple case it can answer directly.
Analogy: Imagine stacking boxes inside bigger boxes until you find the smallest box that you can open easily without opening any more boxes.
Function call stack: main -> func(3) -> func(2) -> func(1) -> base case reached Each arrow means a new call waiting for the smaller call to finish.