Given a string that may contain duplicates, write a function to print all permutations of given string such that no permutation is repeated in output.
Input: str = "AB" Output: AB BA Input: str = "AA" Output: AA Input: str = "ABC" Output: ABC ACB BAC BCA CBA CAB Input: str = "ABA" Output: ABA AAB BAA Input: str = "ABCA" Output: AABC AACB ABAC ABCA ACBA ACAB BAAC BACA BCAA CABA CAAB CBAA
We have discussed an algorithm to print all permutations in below post. It is strongly recommended to refer below post as a prerequisite of this post.
The algorithm discussed on above link doesn’t handle duplicates.
1 ABCC 2 ACBC 3 ACCB 4 BACC 5 BCAC 6 BCCA 7 CABC 8 CACB 9 CBAC 10 CBCA 11 CCAB 12 CCBA
The above code is taken from a comment below by Mr. Lazy.
Time Complexity: O(n2 * n!)
Auxiliary Space: O(1)
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Print distinct sorted permutations with duplicates allowed in input
- Distinct permutations of a string containing duplicates using HashSet in Java
- Print first n distinct permutations of string using itertools in Python
- Java Program to print distinct permutations of a string
- Distinct permutations of the string | Set 2
- Iterative program to generate distinct Permutations of a String
- Print all permutations of a string in Java
- Print all palindrome permutations of a string
- Write a program to print all permutations of a given string
- Print all the palindromic permutations of given string in alphabetic order
- Print k different sorted permutations of a given array
- Print all permutations with repetition of characters
- Iterative approach to print all permutations of an Array
- Print all permutations in sorted (lexicographic) order
- Permutations of a given string using STL