#!/usr/bin/perl # http://perlmonks.org/?node_id=1201500 use strict; use warnings; $| = 1; my $file = '/usr/share/dict/words'; open my $fh, '<', $file or die "$! opening $file"; while(<$fh>) { chomp; /[^a-z]/ and next; "$_\n$_" =~ /^ (?= .* (.) .* \n (?: (?:(?!\1).)* \1 ){1} (?:(?!\1).)* $ ) (?= .{1,1} \n | .* (.) .* \n (?: (?:(?!\2).)* \2 ){2} (?:(?!\2).)* $ ) (?= .{1,3} \n | .* (.) .* \n (?: (?:(?!\3).)* \3 ){3} (?:(?!\3).)* $ ) (?= .{1,6} \n | .* (.) .* \n (?: (?:(?!\4).)* \4 ){4} (?:(?!\4).)* $ ) (?= .{1,10} \n | .* (.) .* \n (?: (?:(?!\5).)* \5 ){5} (?:(?!\5).)* $ ) (?= .{1,15} \n | .* (.) .* \n (?: (?:(?!\6).)* \6 ){6} (?:(?!\6).)* $ ) (?= .{1,21} \n | .* (.) .* \n (?: (?:(?!\7).)* \7 ){7} (?:(?!\7).)* $ ) (?= .{1,28} \n | .* (.) .* \n (?: (?:(?!\8).)* \8 ){8} (?:(?!\8).)* $ ) (?= .{1,35} \n ) /x and print "$_ "; } print "\n"; #### a aah acacia add aha aka all allele app arr ass assays b baa banana baobab bbl bedded bee bib bob bonobo boo bowwow brr bub c cocoon coo d dad dds deadheaded deemed did doodad dud e ebb eddied eek eel eerier eff effete egg eke ell ere err eve ewe eye f fee fesses foo g gag gee gig goo h heeded hmm horror hubbub huh i ill inn inning j k l lee lessee lii lollop loo m mam mammal manana messes mom moo mum n nee needed non nun o odd off oho ooh opp p pap papaya pee peeped peeper pep pepped pepper pip pippin poo pop powwow ppm ppr pup q r reefer revere rococo s salsas see seeded senses sereneness settee shh sis sleeveless sqq ssh t tat tattoo tee teeter teethe tit too tot tut u usu v vii w wedded wee weeded woo wow x xii xix xxi xxv xxviii xxxvii y z zoo