If you are using a dictonary why permute in the first place? loop through the dict and do two tests,
Psudocode:
If word is Lenght you are looking for
if no skip word,
If yest then
check to see if all of the chars in word are in the input array
If yes you have a hit
next word.