def getProductTerm(dimensions, index): ret=[0]*dimensions bit=0 while index>0: ret[dimensions-1-(bit%dimensions)]+=(index&1)<<(bit/dimensions) index >>= 1 bit+=1 return ret for i in range(0,50): print getProductTerm(3,i)
Standard input is empty
[0, 0, 0] [0, 0, 1] [0, 1, 0] [0, 1, 1] [1, 0, 0] [1, 0, 1] [1, 1, 0] [1, 1, 1] [0, 0, 2] [0, 0, 3] [0, 1, 2] [0, 1, 3] [1, 0, 2] [1, 0, 3] [1, 1, 2] [1, 1, 3] [0, 2, 0] [0, 2, 1] [0, 3, 0] [0, 3, 1] [1, 2, 0] [1, 2, 1] [1, 3, 0] [1, 3, 1] [0, 2, 2] [0, 2, 3] [0, 3, 2] [0, 3, 3] [1, 2, 2] [1, 2, 3] [1, 3, 2] [1, 3, 3] [2, 0, 0] [2, 0, 1] [2, 1, 0] [2, 1, 1] [3, 0, 0] [3, 0, 1] [3, 1, 0] [3, 1, 1] [2, 0, 2] [2, 0, 3] [2, 1, 2] [2, 1, 3] [3, 0, 2] [3, 0, 3] [3, 1, 2] [3, 1, 3] [2, 2, 0] [2, 2, 1]