14 lines
449 B
Plaintext
14 lines
449 B
Plaintext
procedure comb(integer pool, needed, done=0, sequence chosen={})
|
|
if needed=0 then -- got a full set
|
|
?chosen -- (or use a routine_id, result arg, or whatever)
|
|
return
|
|
end if
|
|
if done+needed>pool then return end if -- cannot fulfil
|
|
-- get all combinations with and without the next item:
|
|
done += 1
|
|
comb(pool,needed-1,done,append(chosen,done))
|
|
comb(pool,needed,done,chosen)
|
|
end procedure
|
|
|
|
comb(5,3)
|