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' ]) );