As in C++ was some question about speed of simple hard disk based lookup, here is a version of unscramble program completely HD based lookup, which gives all possible candidate words for multiword anagram.
Program is not sensitive for case of words but does not ignore special characters like ' or space, but sub-word condition means that it is possible to input any number of special characters without disturbance.
For example:
Possible multiword anagram candidate words
To quit enter empty line
Give word: Tony Veijalainen
a ye to on no it in at an yon yet yen yea voe vie via vet vat van toy ton toe tin tie ten tee tea tan ova one oil oat not nit nil net nee nay lye lot lit lie let lee lea lay joy jot jet jay ivy ion inn eye eve eta eon eel eat aye ate any ant ana ale yeti vote volt vole viol vine vile vial veto vent vein veil veal vane vale vain tone toil tiny tile teen teal tale tail oven oval only oily nova note none nine neon neat navy nave nail love lone loin loan live lion lint lino line lien levy lent leat lean lava late lane lain jolt join joey jive jilt jail iota into evil even envy elan anon anal alto aeon voile vital viola vinyl venal valet tonne tonal tinny tenon talon ovate olive nylon novel novae navel naval natal naive liven linen lento leave leant laity joint inlet inlay inane event envoy enjoy elven elite elate eaten avian avail atone anvil annoy annal anion alone alive alien violin violet venial vanity vainly tannoy tannin ninety neatly neaten native nation litany linnet levity leaven jovial invite invent intone innate evenly entail enjoin atonal anyone anoint anneal violent violate valiant toenail tinnily olivine novelty neonate naivety naivete naively lenient jointly javelin inanity inanely enliven elation antenna aniline alanine aeolian venetian venality neonatal national innovate innately aviation antennae alienate valentine joviality inviolate invention elevation alienation
Took 4178 ms
Give word: