Mental Model
Recursion solves a problem by breaking it into smaller parts of the same kind until it reaches the simplest case.
Analogy: Imagine peeling an onion layer by layer until you reach the center; each peel is like a smaller problem solved step by step.
array: [a, b, c, d, e] indexes: 0 1 2 3 4 string: "hello" indexes: 0 1 2 3 4 Recursion calls: call 1 -> call 2 -> call 3 -> ... -> base case