Open In App

Itertools Combinations() function – Python

Last Updated : 15 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The combinations() function in Python, part of the itertools module, is used to generate all possible combinations of a specified length from a given iterable (like a list, string, or tuple). Unlike permutations, where the order does matter, combinations focus only on the selection of elements, meaning the order does not matter. It returns an iterator producing tuples, each representing a unique combination of the input elements. Example:

Python
from itertools import combinations
a = "GeEK"

# generate all combinations of length 2
for j in combinations(a, 2):
    print(j)

Output
('G', 'e')
('G', 'E')
('G', 'K')
('e', 'E')
('e', 'K')
('E', 'K')

Explanation: itertools.combinations() generates all unordered pairs (length = 2) from the string “GeEK”. Each element is treated by its position and value. The order within each tuple doesn’t matter and no duplicate combinations (like (‘e’, ‘G’)) are included.

Syntax of Itertools.Combinations()

itertools.combinations(iterable, r)

Parameters:

  • iterable: The input sequence (list, string, tuple, etc.) from which combinations are formed.
  • r: The length of each combination to be generated.

Returns: An iterator that produces tuples, each representing a unique combination of r elements from the iterable, in the order they appear.

Examples of Using Itertools.Combinations()

Example 1: In this example, we are generating all possible unordered pairs (combinations of length 2) from a list of integers.

Python
from itertools import combinations

print(list(combinations([1, 2, 3], 2)))

Output
[(1, 2), (1, 3), (2, 3)]

Explanation: This code returns all possible unordered pairs of elements (length 2) from the list [1, 2, 3]. Each pair is unique and does not repeat in reverse order (i.e., (2, 1) is not included).

Example 2: In this example, we are generating all possible unordered pairs (combinations of length 2) from the string “ABC”.

Python
from itertools import combinations

res = list(combinations("ABC", 2))

print(res)

Output
[('A', 'B'), ('A', 'C'), ('B', 'C')]

Explanation: Generates all 2-length combinations from the string “ABC”. Since the string has 3 distinct characters, it returns all unique unordered pairs.

Example 3: In this example, we are generating all possible unordered pairs (combinations of length 2) from a list that contains repeated elements.

Python
from itertools import combinations

res = list(combinations([1, 1, 2], 2))

print(res)

Output
[(1, 1), (1, 2), (1, 2)]

Explanation: Although the list contains duplicate values, combinations() treats them as distinct based on their position. To get only unique value-based combinations, you can use set() or handle duplicates manually.



Next Article
Article Tags :
Practice Tags :

Similar Reads