@pick @arr[@pick]
0 1 2 ==> x x x . .
0 1 3 ==> x x . x .
0 1 4 ==> x x . . x
0 2 3 ==> x . x x .
0 2 4 ==> x . x . x
0 3 4 ==> x . . x x
1 2 3 ==> . x x x .
1 2 4 ==> . x x . x
1 3 4 ==> . x . x x
2 3 4 ==> . . x x x
####
return @$arr[ @pick = ( 0 .. $num - 1 ) ]
unless @pick;
####
my $i = $#pick;
$i-- or return
while ( $pick[$i]++ == @$arr - $num + $i );
####
@pick[$i .. $#pick] = $pick[$i] .. $#$arr;