1) Recursion is a technique where a function calls itself to solve a problem. It breaks the problem down into smaller subproblems until it reaches a base case that can be solved directly.
2) A recursive function must have a base case where it does not call itself further, and a general case where it calls itself on a reduced problem. It works by repeatedly reducing the problem size until the base case is reached.
3) Examples of problems that can be solved recursively include calculating factorials, Fibonacci numbers, binary search of a sorted array, checking if a string is a palindrome, and solving the Towers of Hanoi puzzle.