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


in reply to Multiple Combinatorics

#! perl -slw use strict; sub nFor(&@) { my $code = shift; die "First argument must be a code ref" unless ref( $code ) eq 'CO +DE'; my @limits = @_; my @indices = ( 0 ) x @limits; for( my $i = $#limits; $i >= 0; ) { $i = $#limits; $code->( @indices ), ++$indices[ $i ] while $indices[ $i ] < $limits[ $i ]; $i = $#limits; $indices[ $i ] = 0, ++$indices[ --$i ] while $i >= 0 and $indices[ $i ] == $limits[ $i ]; } } my @a = 'a'..'z'; my @a3; nFor{ push @a3, [ @a[ @_ ] ]; } ( scalar @a ) x 3; my @b = 0 .. 9; my @b2; nFor{ push @b2, [ @b[ @_ ] ]; } ( scalar @b ) x 2; nFor { print join '-', @{ $a3[ $_[0] ] }, @{ $b2[ $_[1] ] }; } scalar @a3, scalar @b2; __END__ C:\test>965138 | wc -l 1757600 C:\test>965138 a-a-a-0-0 a-a-a-0-1 a-a-a-0-2 a-a-a-0-3 ... z-z-z-9-6 z-z-z-9-7 z-z-z-9-8 z-z-z-9-9

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?