Possible combinations of string in python

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    A permutation also called an “arrangement number” or “order,” is a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n! permutation. 

    Source: Mathword(http://mathworld.wolfram.com/Permutation.html)

    Below are the permutations of string ABC. 
    ABC ACB BAC BCA CBA CAB

    Here is a solution that is used as a basis in backtracking.

    Possible combinations of string in python

    Python3

    def toString(List):

        return ''.join(List)

    def permute(a, l, r):

        if l == r:

            print (toString(a))

        else:

            for i in range(l, r + 1):

                a[l], a[i] = a[i], a[l]

                permute(a, l + 1, r)

                a[l], a[i] = a[i], a[l]

    string = "ABC"

    n = len(string)

    a = list(string)

    permute(a, 0, n-1)

    Output: 

    ABC
    ACB
    BAC
    BCA
    CBA
    CAB

    Algorithm Paradigm: Backtracking 

    Time Complexity: O(n*n!) Note that there are n! permutations and it requires O(n) time to print a permutation.

    Auxiliary Space: O(r – l)

    Note: The above solution prints duplicate permutations if there are repeating characters in the input string. Please see the below link for a solution that prints only distinct permutations even if there are duplicates in input.
    Print all distinct permutations of a given string with duplicates. 
    Permutations of a given string using STL

    Another approach:

    Python3

    def permute(s, answer):

        if (len(s) == 0):

            print(answer, end = "  ")

            return

        for i in range(len(s)):

            ch = s[i]

            left_substr = s[0:i]

            right_substr = s[i + 1:]

            rest = left_substr + right_substr

            permute(rest, answer + ch)

    answer = ""

    s = input("Enter the string : ")

    print("All possible strings are : ")

    permute(s, answer)

    Output:

    Enter the string : abc
    All possible strings are : abc  acb  bac  bca  cab  cba

    Time Complexity: O(n*n!) The time complexity is the same as the above approach, i.e. there are n! permutations and it requires O(n) time to print a permutation.

    Auxiliary Space: O(|s|)


    How do you find the possible combinations of a string in Python?

    Find all permutations of a string in Python.
    import itertools..
    if __name__ == '__main__':.
    s = 'ABC'.
    nums = list(s).
    permutations = list(itertools. permutations(nums)).
    # Output: ['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA'].
    print([''. join(permutation) for permutation in permutations]).

    How do you find all the possible combinations of a string?

    substring(1); Set qq=find(st); for(String str:qq) { for(int i=0;i<=str. length();i++) { ss. add(comb(str,c,i)); } } } return ss; } public static String comb(String s,char c,int i) { String start=s. substring(0,i); String end=s.

    What are permutations of a string in Python?

    A permutation, also called an “arrangement number” or “order”, is a rearrangement of the elements of an ordered list S into a one-to-one correspondence with S itself. A string of length n has n!

    What is combinations in Python?

    Combination is a collection of the element where the order doesn't matter. Python itertools module provides the combination() method to calculate the combination of given data. We can calculate the combination of a string.