1234567
sub mkPerms { my($n, @arr) = @_; return($n ? map { my $item = $_; map { $item . $_ } mkPerms($n-1, @arr) } @arr : "");}print $_ . "\n" for ( mkPerms(3, 'A'..'C') );