Describe the concept of recursion
Recursion is a programming technique where a function calls itself in order to solve a problem. Each recursive call works on a smaller or simpler subset of the problem until a base case is reached, which terminates the recursion. This approach is often used for tasks that can be divided into similar sub-tasks, such as navigating tree structures or solving mathematical problems like factorials.