Tra l'altro, io l'analisi degli algoritmi non l'ho mai studiata, ma ad occhio mi verrebbe da dire che sia un O(n^7) (7 cicli for annidati, ognuno lineare...), sbaglio?
bhè io qualcosina l'ho studiata e se l'algoritmo è costituito da 7 cicli annidati il ragionamento è corretto...basti pensare agli algoritmi di ordinamento tipo bubble sort che è l'esempio classico di ordinamento quadratico appunto perchè costituito da 2 cicli annidati.

mi sorge però un dubbio per quanto riguarda l'algoritmo ricorsivo...
1) Un algoritmo ricorsivo è soggetto ad overhead dovuti alla chiamata di funzione che la versione iterativa non ha, ed è per questo che molto spesso la versione iterativa è nettamente più efficiente.
per quanto riguarda la profondità della ricorsione non sarà più di 6 chiamate per generare una singola combinazione...quindi alla fine tutto questo overhead non lo capisco!!