yieldAllCombos from lecture 8