将itertools用于具有依赖关系的不同范围的任意数量的嵌套循环?

qed*_*dpi 5 python python-itertools python-3.x functools

给出一个上限列表:B1,B2,... BN;
依赖函数:f1,...,fN-1,

我想知道是否有一个使用itertools或python中的其他类的配方:

for i1 in range(0, B1):  
    for i2 in range(f1(i1), B2): ...
         for iN in range(fN-1(iN-1), BN)
             dostuff(i1, i2, ... iN)
Run Code Online (Sandbox Code Playgroud)

哪里有N级筑巢?
我想使用这样的辅助函数:
dependentProducts(Bs,fs,dostuff),
它返回一个列表或者可迭代的

理想情况下,实现将是迭代而不是递归.