Given a string with duplicate characters allowed, print first *n *permutations of given string such that no permutation is repeated.

**Examples:**

Input :string = "abcab", n = 10Output :aabbc aabcb aacbb ababc abacb abbac abbca abcab abcba acabbInput :string = "okok", n = 4Output :kkoo koko kook okko

**Approach:**

Python provides an inbuilt method to find the permutations of any given sequence which is present in the `itertools `

package. But this method doesn’t provide unique permutations. Hence to ensure that any permutation is not repeated, we use a **set** and follow the below conditions:

- If the permutation is not present in the set, print it and insert it in the set. Increment the count of number of unique permutations.
- Else, move on to the next permutation.

Below is the implementation of the above approach:

`# Python3 program to print first n unique ` `# permutations of the string using itertools` `from` `itertools ` `import` `permutations` ` ` `# Function to print first n unique ` `# permutation using itertools ` `def` `nPermute(string, n): ` ` ` ` ` `# Convert the string to list and sort ` ` ` `# the characters in alphabetical order` ` ` `strList ` `=` `sorted` `(` `list` `(string))` ` ` ` ` `# Create an iterator` ` ` `permList ` `=` `permutations(strList)` ` ` ` ` `# Keep iterating until we ` ` ` `# reach nth unique permutation` ` ` `i ` `=` `0` ` ` `permSet ` `=` `set` `()` ` ` `tempStr ` `=` `'' ` ` ` ` ` `while` `i < n:` ` ` `tempStr ` `=` `''.join(permList.__next__())` ` ` ` ` `# Insert the string in the set` ` ` `# if it is not already included` ` ` `# and print it out.` ` ` `if` `tempStr ` `not` `in` `permSet:` ` ` `permSet.add(tempStr)` ` ` `print` `(tempStr)` ` ` `i ` `+` `=` `1` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` ` ` `string ` `=` `"ababc"` ` ` `n ` `=` `10` ` ` `nPermute(string, n) ` |

**Output:**

aabbc aabcb aacbb ababc abacb abbac abbca abcab abcba acabb

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **DSA Live Classes**