Combinations of a List in Python

Combinations of a List in Python

Samyak Jain Aug-10, 2021 Jun-02, 2021 Python Python List
  1. Use the itertools.combinations() Function to Find the Combinations of a List in Python
  2. Use the itertools.combinations_with_replacement() Function to Find the Combinations of a List in Python
  3. Create a User-Defined powerset() Function to Find the Combinations of a List in Python

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