for (my $n=0;;$n++) { words("",$n); } sub words($$) { my ($s,$k) = @_; if (length($s)<=$k) { foreach my $l ("a".."z") { words($s.$l,$k); } } else { print "$s\n"; } }