![]() |
VOOZH | about |
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:
('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.
itertools.combinations(iterable, r)
Parameters:
Returns: An iterator that produces tuples, each representing a unique combination of r elements from the iterable, in the order they appear.
Example 1: In this example, we are generating all possible unordered pairs (combinations of length 2) from a list of integers.
[(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".
[('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.
[(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.