[[attachment:rb090822.csv]]
A slightly different appoach delivers a faster and leaner verb.
Within comb2 the items of k in reversed order are the nub of the elements in the corresponding columns of the combinations.
Successive values of z are the size t combinations of (-d+t){ i.#y , boxed according to the leading digit, for t = >:i.x .
comb2=: 4 : 0 NB. All size x combinations of y
d=. x-~#y
k=. |.(>:d),\y
z=. (d$<i.0 0),<i.1 0
for_j. k do. z=. j ,.&.> ,&.>/\. z end.
; z
)
[d=.4-~#i.6
2
[k=. |.(>:2),\i.6
3 4 5
2 3 4
1 2 3
0 1 2
] z0=. (d$<i.0 0),<i.1 0
┌┬┬┐
││││
└┴┴┘
$&.> z0
┌───┬───┬───┐
│0 0│0 0│1 0│
└───┴───┴───┘
[z1=: j ,.&.> ,&.>/\. z0[j=.0{k
+-+-+-+
|3|4|5|
+-+-+-+
[z2=: j ,.&.> ,&.>/\. z1[j=.1{k
+---+---+---+
|2 3|3 4|4 5|
|2 4|3 5| |
|2 5| | |
+---+---+---+
[z3=: j ,.&.> ,&.>/\. z2[j=.2{k
+-----+-----+-----+
|1 2 3|2 3 4|3 4 5|
|1 2 4|2 3 5| |
|1 2 5|2 4 5| |
|1 3 4| | |
|1 3 5| | |
|1 4 5| | |
+-----+-----+-----+
[z4=: j ,.&.> ,&.>/\. z3[j=.3{k
+-------+-------+-------+
|0 1 2 3|1 2 3 4|2 3 4 5|
|0 1 2 4|1 2 3 5| |
|0 1 2 5|1 2 4 5| |
|0 1 3 4|1 3 4 5| |
|0 1 3 5| | |
|0 1 4 5| | |
|0 2 3 4| | |
|0 2 3 5| | |
|0 2 4 5| | |
|0 3 4 5| | |
+-------+-------+-------+
5 ts'10 comb 20'
0.07020081 24965376
5 ts'10 comb2 i.20'
0.059551496 12481792
10 ((comb2 i.)-: comb)20
1