In questo periodo sono pieno di lavoro, quindi non ho molto tempo da dedicare al forum. Quello che posso dirti è che la funzione prossima_combinazione è sicuramente sbagliata: devi partire da destra (quindi dalla posizione "size-1") e tornare indietro finché non trovi un elemento pari a 0. Quando lo trovi, lo poni a 1 e hai finito. Tutti gli elementi pari a 1 che incontri nel tornare indietro, li setti a 0. Pensa a come faresti per contare in binario:
00000
00001
00010
00011
00100
00101
00110
...
Vedi che è esattamente la stessa cosa?

P.S. Se proprio non ci riesci, posso anche postarti una possibile soluzione, ma mi dispiacerebbe perché non impareresti molto. Invece penso che tu ci possa arrivare da solo... Forza!