# multAll.py

import math
from grays import *


nums = [2, 3, 5, 7]
n = len(nums)

grayGen = grayTransY(n) 
     # transitions for n-bit Gray codes

prod = 1
for i in range(2**n-1):
  idx = next(grayGen) # get a transition
  val = nums[idx-1] 
  if val > 0:
    prod *= val
  else:
    prod = prod//-val  # to flag inclusion
  nums[idx-1] = -nums[idx-1]
  print(idx, ":", prod)
