Write a Python function to generate all permutations of a string.
Posted by DavidLee
Last Updated: August 18, 2024
To generate all permutations of a string in Python, you can use a recursive approach. Below is a function that demonstrates how to create all possible permutations of a given string. This function takes in a string and returns a list containing all permutations.
def generate_permutations(s):
    # Base case: if the string is empty or contains a single character, return the string itself
    if len(s) <= 1:
        return [s]
    
    # List to hold all permutations
    permutations = []
    
    # Iterate through each character in the string
    for i, char in enumerate(s):
        # Get the remaining characters after removing the current character
        remaining = s[:i] + s[i+1:]
        # Recursive call to generate permutations of the remaining characters
        for perm in generate_permutations(remaining):
            # Append the current character to the front of each permutation of the remaining characters
            permutations.append(char + perm)

    return permutations

# Example Usage
if name == "main":
    input_string = "abc"
    result = generate_permutations(input_string)
    print(result)
Explanation of the Function:
1. Base Case: If the string s is either empty or consists of a single character, the only possible permutation is the string itself. Therefore, the function returns a list containing that string. 2. Recursive Case: For each character in the string: - The character is selected as the current character (char). - The remaining characters are computed by excluding the current character. - A recursive call is made to generate permutations of these remaining characters. - Each generated permutation of the remaining characters is concatenated with the current character and added to the permutations list. 3. Return Value: The function returns the complete list of permutations.
Example Output:
Given the input string "abc", the output would be:
['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
This function effectively showcases a backtracking technique to explore all possible arrangements of the string's characters.
Related Content