Python Recursion With Example Recursive Function – In this Python tutorial we will learn the following important concepts about Recursion in Python Programming Language.

- What is Recursion?
- When to use Recursion?
- Advantages of Recursion
- Disadvantages ofÂ using Recursion
- Recursive Function
- Base Case of Recursion
- Recursive Case for Recursion
- Factorial Recursive Function
- Identifying Base condition and Recursive condition in factorial function
- Hand tracing a recursive factorial function
- Complete Source code for Python program to show use of Recursive function Factorial
- Python Recursion Made Easy

## What is Recursion?

Definition: Recursion is a process of calling a function to itself. Actually we can say that

Recursion refers to a situation where a function calls itself again and again until some base condition is not reached.

## Recursive Function?

A recursive function is a function that calls itself.

## Base Case and Recursive Case

For a recursive function, you only need to define the base case and recursive case, so the code is simpler and shorter than an iterative code.

### What is a Base Case or Base Condition in Recursion?

A base condition is a stopping condition to terminate the recursion process. It is a point

when the recursive function will stop to call itself.

### Recursive Case or Recursive Condition

It is a condition, when the base case is not reached and the function needs to call itself again.

## Python Recursion With Example Program usingÂ Recursive Function

Problem: Write a recursive function to find factorial of a positive number n.

Solution:

We know that factorial of a number n is equal to the product of all numbers from 1 to n.

For example, factorial of 5 = 1 x 2 x 3 x 4 x 5 = 120

we also know that n! = n * (n-1)!

that is 5! = 5 * 4!

4! = 4 * 3!

3! = 3 * 2!

2! = 2 * 1!

and we know that 1! = 1

Hence by putting the values

2! = 2 * 1! => 2 * 1 =2

3! = 3 * 2! => 3 * 2 =6

4! = 4 * 3! => 4 * 6 =24

5! = 5 * 4! => 5 * 24 =120

## Source Code for Python Recursion Example of Factorial

# Write a Python program to find factorial of # a number using a Recursive function # define a recursive function def factorial(n): ''' A recursive function to find factorial of a number''' if n==1: return 1 else: return n * factorial(n-1) # get input number from user and pass it to recursive function n = int(input("Enter a number to find factorial:")) print("Factorial of ",n," is ", factorial(n))

### Output of a Sample run – Python Recursion With Example

Enter a number to find factorial:5 Factorial of 5 is 120

## What are Advantages of Recursion?

- Recursion makes code easier to write.
- It is helpful to reduce code size.
- Programmers can use recursion to solve the problems which are naturally recursive such as Factorial, Fibonacci series and towers of Hanoi.
- Recursion adds clarity and reduces the time needed to write and debug code.
- It is very useful in solving some important data structure problems.

### What are drawbacks of using Recursion?

- Recursive functions are generally difficult to analyze or understand the code.
- The programs with recursive functions are generally slower especially for large input size n.
- Recursive functions are generally slower than non-recursive function. That is why they are less efficient in terms of time complexity and space complexity.

More Programs on Recursion

- C Program GCD By Recursion
- C Program Sum of One to N by Recursion
- C Program Sum of Digits by Recursion
- C Program Reverse Number by Recursion
- C Program Fibonacci Series by Recursion
- C Program Power By Recursion
- C Program Find Factorial by Recursion
- C Program Quick Sort
- C Program Merge Sort

- Using Recursion in Java Find Factorial of Number
- Recursion in Java Explained With Examples
- Program Factorial by Loop and Recursion Versions