This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.

Find a copy of Horstmann and Cornell Core Java2, which you will find reviewed on our books pages, and somewhere in there they show an example of such an anagram program with recursion.
Agree that <List><List><String>> is a suitable data structure, but not the only possibility.

Beware. The number of combinations is equal to n! where n is the number of letters involved, so the size of the output increases rapidly with the number of letters.

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com