perl で順列を作る
use strict; my $N = 0; my @use_number = []; my @perm = []; my @result = []; # 順列生成サブルーチン sub make_perm_sub { my $n = shift; if( $n == $N ){ push @result, [@perm]; } else { for ( 1..$N ){ if( not $use_number[$_] ){ $use_number[$_] = 1; $perm[$n] = $_; make_perm_sub( $n + 1); $use_number[$_] = 0; } } } } # 順列生成 sub make_perm { $N = shift; make_perm_sub 0; return @result; } # テストコード my @ret = make_perm 4; print "@{$_}\n" for (@ret);