Du könntest z.B. einen Baum konstruieren in welchem Pfade die Worte markieren. Jeder Knoten hält einen Boolean, der markiert das hier ein Wort endet, und jeder Knoten hat 26 Nachbarn, die den Buchstaben entsprechen. Ein Wort aus der Wörterliste ist dann die beschriftung des Pfades von der Wurzel zu einem Knoten dessen Markierung gesetzt ist. Knoten sind Blätter wenn es kein Wort gibt was sich aus der Verlängerung ihrer Wörter ergibt. Bei jedem Blatt sollte auch eine Markierung gesetzt sein, um unnütze Verzweigung zu vermeiden.
Um nun alle Worte mit einem entsprechendem Präfix zu finden musst du einfach für jeden Buchstaben des Präfixes den entsprechenden Pfad im Baum runtergehen, und vom letzten Knoten des Präfixes aus kannst du dann eine
Breitensuche nach markierten Knoten durchführen.