# Recursion Function

## What is Recursion ?

Recursion is the process of defining something in terms of itself.
Eg: Two mirrors faced each other parallel. Any object in between them would be reflected recursively.

## Python Recursive Function

We know that in Python, a function can call other functions. It is even possible for the function to call itself. These type of functions are called as recursive functions.

## Flow Chart ## Example:

```#Program to print factorial of a number using Recurion

def factorial(num):
"""
This is a recursive function to find the factorial of a given number
"""
return 1 if num == 1 else (num * factorial(num-1))

# Getting the input from user during run time
# Be default all the values will be changed to string
num = input("Enter valid integer number: ")

# Converting String to integer value
num = int(num)
print("The number entered is ", num)

print("Factorial of {0} is {1} ".format(num, factorial(num)))

Output:
Enter valid integer number: 5
The number entered is  5
Factorial of 5 is 120
```

1. Recursive functions make the code look clean and elegant.
2. A complex task can be broken down into simpler sub-problems using recursion.
3. Sequence generation is easier with recursion than using some nested iteration.