Recursion is a technique in which a function calls itself, either directly or indirectly, to solve a problem. Recursive functions break down complex problems into smaller, manageable sub-problems.