In this section, we are going to learn how to find permutation and combination of a given sequence using python programming language.
One of the key advantage of python over other programming language is that it comes with huge set of libraries with it.
We are going to use python inbuilt package to find permutation and combinations of a given sequence.
Algorithm to find the Permutation and combination
>>> import itertools
>>>
Step 2: Get all permutation & combination of a sequence.
Second step is to enter a list of sequences/items as an input that will return all permutation and combinations in the form of list of tuples.
We can also set the length of permutation and combination.
Step 3: Printing the result
Last step is to print the all the permutation and combination of set of sequences. We can use the loop function to print the result.
Permutation
Let’s find the permutation of a list of three items.
Example 1
from itertools import permutations
seq = permutations(['a','b','c'])
for p in list(seq):
print(p)
Result
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
Example 2:
Find the permutation by defining the length of the permutation.
from itertools import permutations
seq = permutations(['p', 'y', 't', 'h', 'o', 'n'], 2)
for p in list(seq):
print(p)
Result
('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'p')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 'p')
('t', 'y')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'p')
('h', 'y')
('h', 't')
('h', 'o')
('h', 'n')
('o', 'p')
('o', 'y')
('o', 't')
('o', 'h')
('o', 'n')
('n', 'p')
('n', 'y')
('n', 't')
('n', 'h')
('n', 'o')
Combinations
Let’s find the combination of a sequence using python.
Example 1: Determine the length of the combination
#Import itertools package
from itertools import combinations
#Getting all combination of a particular length.
combi = combinations(['p', 'y', 't', 'h', 'o', 'n'], 5)
#Print the list of combinations
for c in list(combi):
print(c)
Result
('p', 'y', 't', 'h', 'o')
('p', 'y', 't', 'h', 'n')
('p', 'y', 't', 'o', 'n')
('p', 'y', 'h', 'o', 'n')
('p', 't', 'h', 'o', 'n')
('y', 't', 'h', 'o', 'n')
Example 2: Combinations with replacements
#Import itertools package
from itertools import combinations_with_replacement
#Getting all combination by defining a particular length.
combi = combinations_with_replacement(['p', 'y', 't', 'h', 'o', 'n'], 2)
#Print the list of combinations
for c in list(combi):
print(c)
Result
('p', 'p')
('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'y')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 't')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'h')
('h', 'o')
('h', 'n')
('o', 'o')
('o', 'n')
('n', 'n')