Recursion is a method of solving problems where the solution depends on solutions to smaller instances of the same problem. In programming, recursive functions call themselves with slightly modified parameters. This is like solving a large puzzle by first solving smaller sections of the puzzle and then piecing those sections together to form the whole.