Here is a standard function to print the permutations of characters of a string:
void permute(char *a, int i, int n) { int j; if (i == n) printf(\
It would quite simple if you just think it as a problem where you need to store all the permutations for some future use.
SO you'll have an array of permuted strings.
Now think of a new problem, which is also an standard one where you need to remove the duplicates from array.
I hope that helps.