Anagrams solver based on transitions probability
There's a better way to list all anagrams.

Given a word, compute its "canonical form" by sorting the individual letters into alphabetical order.  For instance, BASEBALL becomes AABBELLS.  Do this for each word in the dictionary, and build a data structure that maps from a canonical form to the list of words with that canonical form (e.g., from AABBELLS to BASEBALL) -- for instance, you might use a hashtable or a sorted list.

Now, given one English word, if you want to find all anagrams of it, you can rapidly compute all anagrams by computing its canonical form and then looking that up in your data structure.

This doesn't require n-grams, transition probabilities, Viterbi algorithm, or anything fancy like that -- just sorting and simple data structures.  Thus, it can be coded up quickly and elegantly; and it will be very efficient.