Algorithm to print all permutations of a string