cube = numpy.array(list(itertools.product((0, 1), (0, 1), (0, 1))))
x_dim = y_dim = z_dim = 10
for offset in itertools.product(*map(xrange, (x_dim, y_dim, z_dim))):
    work_with_cube(cube + offset)
Pythonic способ перебора трехмерного массива