# How to permutate a string in Python 3

To permutate a string is to change the order or arrangement of the characters that the string is made up of. Given that n is the number of characters, there are n! different ways to permutate a given string.

This post shows how we can permutate a string in Python 3.

## Without importing any Python 3 libraries

### Printing different permutation of string with duplicates

def permutate_string(string, prefix = ''): if len(string) == 0: print(prefix) else: for i in range(len(string)): rem = string[0:i] + string[i+1:] permutate_string(rem, prefix + string[i]) permutate_string('abb') ''' Output: abb abb bab bba bab bba '''

### Collecting different permutation of string with duplicates in a list

def build_permutation_list(string, prefix='', permutation_list=[]): if len(string) == 0: permutation_list.append(prefix) else: for i in range(len(string)): rem = string[0:i] + string[i + 1:] build_permutation_list(rem, prefix + string[i], permutation_list) permutation_list = [] build_permutation_list('abb', permutation_list=permutation_list) # permutation_list will contain the list of string variations from this point on

### Collecting different permutation of string without duplicates in a list

permutation_list = [] build_permutation_list('abb', permutation_list=permutation_list) permutation_list = set(permutation_list)

## With itertools.permutations library function

### Printing different permutation of string with duplicates

from itertools import permutations string_permutations = permutations('abb') for string in string_permutations: print(''.join(string)) ''' Output: abb abb bab bba bab bba '''

### Printing different permutation of string without duplicates

from itertools import permutations # Use the set function to remove duplicates string_permutations = set(permutations('abb')) for string in string_permutations: print(''.join(string)) ''' Output: bba bab abb '''