Use a stack to enumerate all permutations of a string. Suppose you want to find all permutations of the string meat. Push the string +meat on the stack. Now repeat the following operations until the stack is empty.
Pop off the top of the stack.
If that string ends in a + (such as tame+), remove the + and print the string
Otherwise, remove each letter in turn from the right of the +, insert it just before the +, and push the resulting string on the stack. For example, after popping e+mta, you push em+ta, et+ma, and ea+mt.