A clean tacit version of (n choose k) in J
Your initial verb is a good start. Your code could be shortened to 24 bytes

~.@(/:~@:{"1~i.)~!A.&amp;i.]


A shorter version for 22 bytes can be found by permuting the binary string with k 1's.

[:I.@~.i.@!@]A.]{.1#~[


These are both O(n!) for C(n, k).