# 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 PythonDictionary 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**