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


in reply to TLD generator

The code above generates duplicates (i.e. the same TLD will be generated more than once). Consider:
'a'.'a'.'a'.'a'.''.''
'a'.'a'.'a'.''.'a'.''
'a'.'a'.'a'.''.''.'a'
The following does not have the duplicates problem. It could be optimized a bit (and shortened too), but I leave that as an exercise to the reader...
#!/usr/bin/perl -w use strict; my @chars=(('a'..'z'),(0..9)); tld('',$_) for (3..6); sub tld{ my ($txt,$cnt)=@_; if($cnt==0){ print "$txt\n"; }else{ tld($txt.$_,$cnt-1) for (@chars); } }