Permutation and Combination in Python
In this post, you will learn how to find the permutation and combination in Python. Python has predefined methods to find the permutation and combination of the given sequence. These methods are available in the itertools package.
Python Permutation
In mathematics, a permutation is an arrangement of the numbers so that a particular set can be arranged. It is used for a list of data where the order of the data matters.
To implement the permutation in Python, first we need to import the itertools packages.
import itertools
This module provides an inbuilt method permutations() that takes a list as an input and returns an object list of tuples that contains all permutations. In the given example, we are finding the permutation of a list of three items.
from itertools import permutations
seq = permutations([4, 2, 8])
print(seq)
for i in list(seq):
print(i)
Output of the above code:
(4, 2, 8)
(4, 8, 2)
(2, 4, 8)
(2, 8, 4)
(8, 4, 2)
(8, 2, 4)
Length of Permutation
We can find the permutation of the fixed length set where we only take a specified number of each element permutation in the given way.
# Find permutations of the given length
from itertools import permutations
# Get all permutations of length 2
seq = permutations([4, 2, 8], 2)
# Print the obtained permutations
for i in list(seq):
print (i)
Output of the above code:
(4, 2)
(4, 8)
(2, 4)
(2, 8)
(8, 4)
(8, 2)
Python Combination
In mathematics, a combination is the number of possible arrangements in a collection of items. It is used for a group of data where the order of data doesn't matter.
The itertools module provides combinations() method to calculate the combination of given data. In the given example, we are finding the combinations of the fixed length set.
from itertools import combinations
# Get all combinations of length 2
comb = combinations([11, 21, 9], 2)
# Print the obtained combinations
for i in list(comb):
print (i)
Output of the above code:
(11, 21)
(11, 9)
(21, 9)
Combinations for letters in a word
If we want to find all combinations containing exactly 2 letters from the given word, then the code will be-
from itertools import combinations
seq = "HAPPY"
com_seq = combinations(seq, 2)
for c in com_seq:
print(c)
Output of the above code:
('H', 'A')
('H', 'P')
('H', 'P')
('H', 'Y')
('A', 'P')
('A', 'P')
('A', 'Y')
('P', 'P')
('P', 'Y')
('P', 'Y')
Python Combinations with replacements
If we want to make a combination of same element to same element then we use combinations_with_replacement. This method allows values to be combined with themselves. The given code snippet demonstrates how these methods work:
#Import itertools package
from itertools import combinations_with_replacement
combi = combinations_with_replacement(['e','t','p'], 2)
for c in list(combi):
print(c)
Output of the above code:
('e', 'e')
('e', 't')
('e', 'p')
('t', 't')
('t', 'p')
('p', 'p')
Related Articles
Python Weather API Script
Python requests POST method
Convert list to dictionary Python
Dictionary inside list python
Pandas string to datetime
Convert Excel to CSV Python Pandas
Python add list to list
Python Pandas Dataframe to CSV
Python compare two lists
Remove element from list Python
Python iterate list with index
Python program to sum all the numbers in a list
Python print without newline
Python iterate list with index
Python add list to list
Python convert xml to dict
Python dict inside list
Python convert dict to xml
Python weather api
Python raise keyword