http://www.perlmonks.org?node_id=1058492


in reply to Re^3: Another word puzzle with too many permutations
in thread Another word puzzle with too many permutations

I noticed it too, that you score caps only. That said, if you score by length, it works nicely as well.
Another smart thing is to remove impossible words at earliest opportunity.
DOG: for my $dog (@_) { my $remaining = $letters; $remaining =~ s/$_//i or next DOG for split //, $dog; push @remain, $remaining; push @dogs, $dog; } while( my $dog = shift @dogs ) { dogtree( "$tree $dog", shift @remain, @dogs ); }
The given puzzle solves in 1-2 secs, and takes about 3 minutes for a full pass (return instead of exit).
Only one solution exists. A letter set such as
"A(11),B(3),C(2),D(8),E(6),F(1),H(8),I(10),J(1),K(1),L(6),M(1),N(10),O(9),P(2),R(7),S(6),T(9),U(7),V(1),W(1),X(1),Z(2)"; takes some 20 times longer...