# Combinations of a List in Python

Samyak Jain Aug-10, 2021 Jun-02, 2021 Python Python List

A combination is a technique that determines the number of possible arrangements in a collection of elements. In a combination of elements, the elements are selected in an arbitrary order.

In this tutorial, we will find the total combinations of a list’s elements in Python.

## Use the `itertools.combinations()` Function to Find the Combinations of a List in Python

The function `combinations(list_name, x)` from the `itertools` module takes the list name and a number x as the parameters and returns a list of tuples each of length x containing all the possible combinations of one element in the list with the other elements.

For example,

``````from itertools import combinations
A = [10, 5, 'Hi']
temp = combinations(A, 2)
for i in list(temp):
print (i)
``````

Output:

``````(10, 5)
(10, 'Hi')
(5, 'Hi')
``````

A sorted list will output the combination tuples in sorted order. A combination of one element in the list with itself is not possible using the `combinations()` function.

## Use the `itertools.combinations_with_replacement()` Function to Find the Combinations of a List in Python

The function `combinations_with_replacement(list_name, x)` from the `itertools` module takes the list name and a number ‘x’ as the parameters and returns a list of tuples each of length ‘x’ containing all possible combinations of the list’s elements. A combination of one element in the list with itself is possible using this function.

For example,

``````from itertools import combinations_with_replacement
A = [1, 5, 'Hi']
temp = combinations_with_replacement(A, 2)
for i in list(temp):
print (i)
``````

Output:

``````(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')
``````

## Create a User-Defined `powerset()` Function to Find the Combinations of a List in Python

In mathematics, a power set of any set is a set which contains all the possible subsets of a given set along with an empty set. Power set of set `S = {2, 5, 10}` is `{{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}`. The following function `powerset()` is used to loop through all the lengths ‘r’ of the list and print all the possible combinations of the list’s elements.

For example,

``````from itertools import chain, combinations
def powerset(list_name):
s = list(list_name)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))

A = [60, 7, 'Hi']
for x in powerset(A):
print(x)
``````

Output:

``````()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')
``````

## Related Article - Python List

• Convert a Dictionary to a List in Python
• Remove All the Occurrences of an Element From a List in Python
• Remove Duplicates From List in Python
• Get the Average of a List in Python
• What Is the Difference Between List Methods Append and Extend
• Convert a List to String in Python