Represent letters as counts
A reliable solver treats letters as a multiset: AELRST becomes {a:1,e:1,l:1,r:1,s:1,t:1}. A candidate is valid when none of its letter counts exceed the rack counts. This prevents a candidate such as TREAT from using two T tiles when only one exists.
Exact and subset searches differ
For an exact anagram, candidate length equals rack length and every count must match. For an unscramble search, candidates may use a subset. The distinction changes both correctness and performance, so the interface should state which mode is active.
Handle wildcards explicitly
A wildcard covers each missing count up to the number of blanks. It should not be converted into a chosen letter before candidate testing. After matching, the interface can highlight which letters consumed blanks so players understand the result.
Rank for human usefulness
Alphabetical output is correct but not always helpful. Ranking by length, then game score, then familiarity puts likely choices first. A transparent rank is preferable to unexplained “AI” ordering; users should know why a word appears above another.
Quick review
The strongest habit is to separate hard constraints—letter counts, length, fixed positions—from helpful clues such as frequency and familiar patterns. Use the tool to narrow possibilities, then use meaning and context to choose.