# How to Get All Combinations of a List in Python

09/08/2021

Contents

In this article, you will learn how to get all combinations of a list in Python.

## Get All Combinations of a List

There are several ways to get all combinations of a list in Python. Here are two common methods:

### Using the itertools module

The `itertools` module in Python provides a function called `combinations` that takes two arguments: an iterable objects and an integer n, and returns an iterator over n-length tuples of elements from the input iterable. To get all combinations, you can use a for loop and generate all combinations for each length starting from 1 to the length of the list.

``````import itertools

def all_combinations(lst):
result = []
for i in range(1, len(lst)+1):
combinations = list(itertools.combinations(lst, i))
result.extend(combinations)
return result
``````

### Using Recursion

Another way to get all combinations of a list is to use recursion. The basic idea is to generate all combinations for a sublist, and then add each element in the list to the sublist one by one.

``````def all_combinations(lst):
if len(lst) == 0:
return [[]]
result = []
for i in range(len(lst)):
m = lst[i]
rem_list = lst[:i] + lst[i+1:]
for p in all_combinations(rem_list):
result.append([m] + p)
return result
``````

Both of these methods return a list of tuples, where each tuple represents a combination of elements from the original list.