input: def use_recursion_to_solve_problem():
      """
      This function explains how to use recursion to solve a given problem in Python.
      Recursion involves defining a problem in terms of itself by breaking it down 
      into smaller problems until the problem is small enough to be solved directly. 
      In Python, a recursive function is one that calls itself.
      Example:
      for use_recursion_to_solve_problem()
      Recursion is a powerful technique for solving problems. It involves defining a problem in terms of itself. A recursion problem is solved by breaking it down into smaller problems, until the problem is small enough to be solved directly. The result from a smaller problem can then be combined with the result from the larger problem, until the original problem is solved. In Python, a recursive function is one that calls itself.
      """
output:     def factorial(n):
          if n == 0:
              return 1
          else:
              return n * factorial(n - 1)
      
      print("Example of recursion: factorial of 5 is", factorial(5))