# Permutation - Combination in Python

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, dictionary and range iterable. Please note that, the 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)

The output of the above code will be:

(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)

The output of the above code will be:

(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)

The output of the above code will be:

(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)

The output of the above code will be:

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