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(s, answer):
    if len(s) == 0:
        print(answer)
        return
    for i in range(len(s)):
        ch = s[i]
        rest = s[:i] + s[i+1:]
        permute(rest, answer + ch)

s = "abc"
permute(s, "")
            
Input: abc
Output: abc, acb, bac, bca, cab, cba

Method 2: Using itertools.permutations

This method uses Python's built-in permutations function.

from itertools import permutations

s = "abc"
perm_list = sorted("".join(p) for p in permutations(s))
for perm in perm_list:
    print(perm)
            
Input: abc
Output: abc, acb, bac, bca, cab, cba

Method 3: Using Recursion with Sorting

This method generates and sorts permutations manually.

def generate_permutations(prefix, s, permutations):
    if not s:
        permutations.append(prefix)
    else:
        for i in range(len(s)):
            generate_permutations(prefix + s[i], s[:i] + s[i+1:], permutations)

s = "abc"
permutations = []
generate_permutations("", s, permutations)
permutations.sort()
for perm in permutations:
    print(perm)
            
Input: abc
Output: abc, acb, bac, bca, cab, cba
Strings

Below You will find some of the most important codes in languages like C, C++, Java, and Python. These codes are of prime importance for college semester exams and online tests.

Getting Started

Check whether a character is a vowel or consonant: C C++ Java Python

Check whether a character is an alphabet or not: C C++ Java Python

Find the ASCII value of a character: C C++ Java Python

Length of the string without using strlen() function: C C++ Java Python

Toggle each character in a string: C C++ Java Python

Count the number of vowels: C C++ Java Python

Remove the vowels from a string: C C++ Java Python

Check if the given string is Palindrome or not: C C++ Java Python

Print the given string in reverse order: C C++ Java Python

Remove all characters from string except alphabets: C C++ Java Python

Remove spaces from a string: C C++ Java Python

Replace a sub-string in a string: C C++ Java Python

Count common sub-sequences in two strings: C C++ Java Python

Compare two strings with wildcard support in one of them: C C++ Java Python

List all permutations of a given string in dictionary order: C C++ Java Python

Operations on Strings: C C++ Java Python