input: Write a function to clearly understand the concept of recursion in Python. The function should calculate the factorial of a given number using recursion. If the given number is 1, the function should return 1. Otherwise, the function should return the product of the number and the factorial of the number minus one. Test the function with the following inputs and outputs.
  
  def factorial(n):
     if n == 1:
        return 1
     else:
        return n * factorial(n - 1)
  
  assert factorial(5)==120
  assert factorial(1)==1
  assert factorial(3)==6
  assert factorial(0)==1
output: def factorial(n):
     if n == 0 or n == 1:
        return 1
     else:
        return n * factorial(n - 1)