如何在Python中生成多个深度范围列表?

如何在Python中生成多个深度范围列表?,python,algorithm,combinations,Python,Algorithm,Combinations,假设您有一个以多个点递增的标签: 例如,1-A-1。 假设第三个点最多可以增加10倍(1-A-10),之后,A将变成B:1-B-1 然后,此过程重复执行,直到1-Z-10,然后递增,即为2-A-1 如何编写一个通用函数来生成一个列表,该列表包含从1-a-1到10-Z-10的所有组合?这看起来是 产品(as、bs、cs、ds等)创建一个生成器,该生成器为循环生成类似于多级深度的值: for a in as: for b in bs: for c in cs:

假设您有一个以多个点递增的标签:

例如,
1-A-1
。 假设第三个点最多可以增加10倍(
1-A-10
),之后,
A
将变成
B
1-B-1

然后,此过程重复执行,直到
1-Z-10
,然后递增,即为
2-A-1


如何编写一个通用函数来生成一个列表,该列表包含从
1-a-1
10-Z-10
的所有组合?

这看起来是

产品(as、bs、cs、ds等)
创建一个生成器,该生成器为循环生成类似于多级深度
的值:

for a in as:
    for b in bs:
        for c in cs:
            for d in ds:
                yield (a, b, c, d)
因此,要使用此选项,您可以直接强制转换到列表:

result = [f"{a}-{b}-{c}" for a, b, c in labels]
或在
标签上循环

for label in labels:
    a, b, c = label
    formatted = f"{a}-{b}-{c}"
    # do something with formatted

你为什么不告诉我们你到目前为止都做了些什么?@trotta我会的,但我已经把这个问题推广到了我的代码不相关的地方。如果参数是一个可变的范围数呢?我知道你说的对这个特定的例子有效,但是我的程序需要是动态的。有时会有一个范围,有时会有三个范围,等等@Matthew试试看。你会发现,
product
是可变的。我的意思是,如何将列表列表传递给一个只希望列表作为参数的可变函数,但我发现可以在函数参数中使用前面的星号将列表解包到列表中。
for label in labels:
    a, b, c = label
    formatted = f"{a}-{b}-{c}"
    # do something with formatted