+

Permutation and combination in Python

permutation

First import of the itertools package to implement permutation method in python. This method takes a list as input and returns a list of tuple objects that contain all permutations in the form of a list.

# Python program to print everyone
# permutations using a library function

from itertools import permutations

  
# Get all permutations from [1, 2, 3]

perm = permutations ([ 1 , 2 , 3 ])

  
# Print received permutations

for i in list (perm):

print i

Exit

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

This generates! permutations if the length of the input sequence is n.

If you want to get permutations of length L, then implement it as follows.

# Program Python to print all
# permutations of a given length

from itertools import permutations

 
# Get all permutations of length 2
# and length 2

perm = permutations ([ 1 , 2 , 3 ], 2 )

 
# Print the resulting permutations

for i in list (perm):

print i

Exit

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

This generates nCr * r! permutations if the length of the input sequence is n and the input parameter is r.

combination

This method takes a list and input r as input and returns a list of tuple objects that contain all possible combinations of length r in the form of a list.

# Python program to print everyone
# combinations of specified length

from itertools import combinations

 
# Get all combinations [1, 2, 3]
# and length 2

comb = combinations ([ 1 , 2 , 3 ], 2 )

 
# Print the resulting combinations

for i in list (comb):

print i

Exit

 (1, 2) (1, 3) (2, 3) 
  1. The combinations are displayed in the lexicographic sort order of the input. Thus, if the input list is sorted, the combined tuples will be created in sorted order.

    # Python program to print all combinations
    # of a given length with unsorted input.

    from itertools import combinations

     
    # Get all combinations [2, 1, 3]
    # and length 2

    comb = combinations ([ 2 , 1 , 3 ], 2 )

     
    # Print received combinations

    for i in list (comb):

    print i

    Exit

     (2, 1) (2, 3) (1, 3) 
  2. Items are treated as unique depending on on their position, not on their value. Therefore, if the input elements are unique, there will be no duplicate values ​​in each combination.

    # Python program to print all combinations
    # of a given length with duplicate inputs

    from itertools import combinations

     
    # Get all combinations [1, 1, 3]
    # and length 2

    comb = combinations ([ 1 , 1 , 3 ], 2

     
    # Print the resulting combinations

    for i in list (comb):

    print i

    Exit

     (1, 1) (1, 3) (1, 3) 
  3. If we want to create a combination of the same element with the same element, we use a combination of combinations of combinations of elements.

    # Python program to print all combinations
    # with a combination of elements to yourself
    # also included

    from itertools import combinations_with_replacement

     
    # Get all combinations of [1, 2, 3] and length 2

    comb = combinations_with_replacement ([ 1 , 2 , 3 ], 2 )

     
    # Print the resulting combinations

    for i in list (comb):

    print i

    Exit

     (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3) 
  4. This article is courtesy of Raju Varshney . Please post comments if you find something wrong or if you would like to share more information on the topic under discussion

Get Solution for free from DataCamp guru