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.