# XXX Doesn't handle negatives sub idiv { my ($dividend, $divisor) = @_; use integer; my $quotient = $dividend / $divisor; my $remainder = $dividend - ( $quotient * $divisor ); return ( $quotient, $remainder ); } my @chartab = (0..9, 'a'..'z'); my $N = 3; for (0 .. @chartab**$N-1) { my $x = $_; for (1..$N) { ($x, my $i) = idiv($x, 0+@chartab); print $chartab[$i]; } print ','; }