Watch recursive functions call themselves, build up a call stack, and unwind with results. Step through each call.
Designed with the WJEC specification in mindRecursion is when a function calls itself to solve a smaller version of the same problem. It's like a set of Russian dolls — each doll contains a smaller version until you reach the tiniest one!
Recursion = a function that calls itself. Every recursive function needs:
1. Base case — when to STOP (prevents infinite recursion)
2. Recursive case — calling itself with a SIMPLER problem
Call stack: Each call creates a new "frame" on the stack. When the base case is reached, frames unwind from top to bottom, each returning its result to the caller.
Warning: Too many recursive calls → Stack Overflow! Python has a default limit of ~1000 recursive calls.