I would do something like this.
First, create a set up table and name it "Setup":
In cell B3 enter the formula:
=2^B1
shorthand for this is:
B3=2^B1
this produces a value used to limit the combinations in another table.
The "other" table is named "Combinations" and is set up like this:
Make the first row a header row.
I named the items "A" thru "L"
A2=IF((ROW()−1)<Setup::$B$3, ROW()−1, "")
B2=COUNTIF(E2:P2, "<>"&0)
C2=IF(B2=Setup::$B$2,D2, "")
D3=IFERROR(SUBSTITUTE(E2&F2&G2&H2&I2&J2&K2&L2&M2&N2&O2&P2, "0", ""), "")
E2=IFERROR(IF(MID(NUMTOBASE($A2,2,12), 13−(COLUMN()−4), 1)="1", E$1, 0), "")
to finish filling across, select E2, copy,
select cells E2 thru P2, paste
to fill down, select cells A2 thru P2, copy
select cells A2 thru the end of column P, paste
now expand the table, by selecting rows 2 thru then of the table, then use the key combination <option>+ <down arrow> to add more rows.
select more rows off the rows except the header then repeat the key combination. I added 512 rows.
Number is not very good with large datasets, so as you add rows it may slow down.
The combinations are in column C.
you can select that column,, copy, then paste into another table using the menu item "Edit > Paste Formula Results" then sort ASCENDING. Then select the "empty" rows and delete, then sort ascending