When should this come to mind?
Solve a smaller instance and keep unfinished work in a call frame.
Self-similar subproblemsTree traversalChoose, explore, undo
What makes it work
Every branch must reach a base case. Locals belong to individual frames.
When to choose something else
Very deep recursion can exceed the call stack; an explicit stack may be safer.