AlphaCodingSkills

Permutation - Combination in Python


Advertisements

One of the key advantage of using Python as compared to other programming languages is that it has extensive library support. It has built-in package to find permutations and combinations of a sequence.

Permutation


First of all, import itertools package for permutations method. This method takes iterable as parameter and returns list object containing each permutation as a tuple. An iterable object can be any data structure like list, tuple, set, string and dictionary etc. The range() function can also be used as an iterable. Along with this, Iterable must have no repeating elements.

Syntax


permutations(iterable, r)

Parameters

iterable Required. iterable object like list, tuple, set, string , dictionary and range() etc. with no repeating element
r Optional. number of items to permute. must be between 0 to n(number of element in iterable). default value is n.

Example: Permutation of n out of n items


from itertools import permutations 
MyList = [1, 2, 3]

MyList_permuted = permutations(MyList)
for i in MyList_permuted:
  print(i)

Output

(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

Example: Permutation of r items out of n items


from itertools import permutations 
MyList = [1, 2, 3]

MyList_permuted = permutations(MyList, 2)
for i in MyList_permuted:
  print(i)

Output

(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)

Combination


For combination, import itertools package for combinations method. This method takes iterable as parameter and returns list object containing each combination as a tuple. Iterable must have no repeating elements.

Syntax


combinations(iterable, r)

Parameters

iterable Required. iterable object like list, tuple, set, string , dictionary and range() etc. with no repeating element
r Required. number of items. must be between 0 to n(number of element in iterable).

Example: Combination of r items out of n items


from itertools import combinations 
MyList = [1, 2, 3]

MyList_combination = combinations(MyList, 2)
for i in MyList_combination:
  print(i)

Output

(1, 2)
(1, 3)
(2, 3)

Combination with replacement


If the replacement of item is allowed, then combinations_with_replacement method is used which is found in itertools package. This method takes iterable as parameter and returns list object containing each combination as a tuple. Iterable must have no repeating elements

Syntax


combinations_with_replacement(iterable, r)

Parameters

iterable Required. iterable object like list, tuple, set, string , dictionary and range() etc. with no repeating element
r Required. number of items. must be between 0 to n(number of element in iterable).

Example: Combination with replacement of r items out of n items


from itertools import combinations_with_replacement 
MyList = [1, 2, 3]

MyList_comb_rplc = combinations_with_replacement(MyList, 2)
for i in MyList_comb_rplc:
  print(i)

Output

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3)