# Distinct permutations of a number

Given an integer **N**, the task is to print all distinct permutations of the number **N**.

**Examples:**

Input:N = 133Output:133 313 331Explanation:

There are a total of 6 permutations, which are [133, 313, 331, 133, 313, 331].

Out of all these permutations, distinct permutations are [133, 313, 331].

Input:N = 7668Output:7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667

**Approach: **Follow the steps below to solve the problem:

- Initialize an empty string to store the equivalent string representation of
**N**. - Initialize a Map to convert each character of the string to an integer and store it as a list.
- Permute this list using built-in python functions itertools. permutations().
- Initialize another list, say
**newList.** - Traverse the permutations of the list and if the permutation(list) is not in
**newList**then append this list to**newList**. - Initialize an empty string,
**s = “”**and another empty list say**permuteList.** - Traverse the list
**newlist**and for each list, perform the following operations:- Traverse the list and add each element to the string
**s**. - After traversing, convert the string to an integer.
- Append this integer to
**permuteList**.

- Traverse the list and add each element to the string
- Print the values of
**permuteList**as the possible distinct permutations.

Below is the implementation of the above approach:

## Python3

`# Python3 program for the above approach` `from` `itertools ` `import` `permutations` `# Utility function to print` `# all distinct permutations` `def` `uniquePermutationsUtil(permute):` ` ` ` ` `p ` `=` `[]` ` ` ` ` `# Traverse the list permute[]` ` ` `for` `i ` `in` `permute:` ` ` ` ` `# Convert this permutation to list` ` ` `permutelist ` `=` `list` `(i)` ` ` ` ` `# Append this list to p` ` ` `p.append(permutelist)` ` ` `# Stores unique permutations` ` ` `newlist ` `=` `[]` ` ` ` ` `# Traverse list p[]` ` ` `for` `i ` `in` `p:` ` ` ` ` `# If permutation is` ` ` `# not in newlist` ` ` `if` `i ` `not` `in` `newlist:` ` ` `newlist.append(i)` ` ` `# Initialize empty list` ` ` `permutelist ` `=` `[]` ` ` ` ` `# Traverse the list newlist[]` ` ` `for` `i ` `in` `newlist:` ` ` ` ` `# Initialize empty string` ` ` `s ` `=` `""` ` ` ` ` `# Traversing in element list` ` ` `for` `j ` `in` `i:` ` ` ` ` `# Convert each` ` ` `# element to string` ` ` `s ` `=` `s ` `+` `str` `(j)` ` ` ` ` `# Convert string to integer` ` ` `s ` `=` `int` `(s)` ` ` ` ` `# Append the unique` ` ` `# permutation to permutelist` ` ` `permutelist.append(s)` ` ` ` ` `# Print all distinct permutations` ` ` `print` `(` `*` `permutelist)` ` ` `# Function to print all` `# distinct permutations` `def` `uniquePermutations(N):` ` ` ` ` `# Stores equivalent string` ` ` `# representation of N` ` ` `num ` `=` `str` `(N)` ` ` `# Convert each character to` ` ` `# integer and store in the list` ` ` `lis ` `=` `list` `(` `map` `(` `int` `, num))` ` ` ` ` `# Built in method to store all` ` ` `# permutations of the list` ` ` `permute ` `=` `permutations(lis)` ` ` ` ` `# Print unique permutations` ` ` `uniquePermutationsUtil(permute)` `# Driver Code` `# Given value of N` `N ` `=` `7668` `# Function call to find all` `# distinct permutations of N` `uniquePermutations(N)` |

**Output:**

7668 7686 7866 6768 6786 6678 6687 6876 6867 8766 8676 8667

**Time Complexity:** O(N * N!)**Auxiliary Space:** O(N * N!)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**