#!/usr/bin/perl use strict; use warnings; use String::Combination qw(combination); open DICT, 'english-words.txt' or die "Can't open dictionary: $!"; my @dict = ; chomp @dict; my %dict = map { (lc($_) => 1) } @dict; print "Letters? "; my $letters = lc ; chomp $letters; my @results; for (my $i = 2; $i <= length $letters; $i++) { push @results, grep { $dict{$_} } combination $letters, $i; } print "@results"; __END__ Output: Letters? tar at art rat tar