I don't really understand the problem, care to elaborate a bit more on that? In theory it sounds like you want to build a trie out of your word dictionary and then check all permutations of your input against that trie.
Shitlord by trade and passion. Graphics programmer at Laminar Research. I write blog posts at feresignum.com