Text-Twist - similar to boggle problem A similar play on the boggle problem from before (some text from that has been used below, edited to fit)
any code that solves the familiar "text-twist" game

Objective

7 letters are given at random, to which there is a minimum 1 word that uses all 7 letters, and multiple words using less (3 or more required)

The letters may be used in any order, however not duplicated (unless duplicates are included in the 7)

Your code should run for no more than 1 minute (60 seconds). At that time, it should have solved all results.

Final challenge score will be the character count of the program.
In the event of a tie, the winner will be the fastest output, decided by an average of 3 inputs, the same being given to both.
In the event there is still a tie, the winner will be whichever algorithm found more long (6+) words.

Rules / constraints

Please refer to wordlist.sourceforge.net for a word list (use ISPELL "english.0" list - the SCOWL list is missing some pretty common words).
This listing may be referenced in your code any way you wish.
Perl, 90 chars

$_++for@q{&lt;&gt;=~/./g};open E,"E";while(&lt;E&gt;){%p=%q;$.*=$p{$_}--for/./g;y///c&gt;3&amp;&amp;$.&amp;&amp;print}


The program takes the list of letters as a line on standard input. The word list is referenced as a file in the current directory named "E". (Presumably this falls under the umbrella of "any way you wish".)

Some other assumptions I made that were not spelled out in the problem description:


that the goal was to produce a program (as opposed to a function);
that the input was case-sensitive;
that apostrophes and hyphens were not to be ignored;
that the program was required to not match on words in the word list that were too short.


Also, I wonder if the time limit given in the original description is necessary. Even when given a huge list of letters such that every word in "english.0" matches, my program still runs to completion in under 1s.