Recursion is a programming method and a way to divide and conquer. A problem is broken down into a base case and a recursive step.