List all permutations of a given string in dictionary order in Python
Understanding String Permutations
String permutations refer to all possible arrangements of characters in a given string. The dictionary order means sorting them lexicographically.
We will explore three different methods to list all permutations of a given string in Python.
Method 1: Using Recursion
This method generates permutations recursively by swapping characters.
from itertools import permutations def permute(string): perms = sorted(set(permutations(string))) for perm in perms: print("".join(perm)) # Get user input string = "abc" permute(string)
Output: abc, acb, bac, bca, cab, cba
Method 2: Using Next Permutation Algorithm
This method generates permutations using the next permutation algorithm.
from itertools import permutations def next_permutation(string): perms = sorted(set("".join(p) for p in permutations(string))) for perm in perms: print(perm) # Get user input string = "abc" next_permutation(string)
Output: abc, acb, bac, bca, cab, cba
Method 3: Using Recursion with Sorting
This method generates and sorts permutations manually.
def permute_sorted(string, prefix=""): if len(string) == 0: print(prefix) else: for i in range(len(string)): permute_sorted(string[:i] + string[i+1:], prefix + string[i]) # Get user input string = "abc" permute_sorted("".join(sorted(string)))
Output: abc, acb, bac, bca, cab, cba