Python 从itertools.product对象中的某个位置开始迭代

Python 从itertools.product对象中的某个位置开始迭代,python,itertools,Python,Itertools,我正在使用python itertools模块创建一个生成器,它可以从aaa迭代到ccc 我想不出从某个位置开始迭代的方法 例如,如果输入是aba,迭代将从该位置继续 这就是我的代码现在的样子: from itertools import product strings = itertools.product(*["abc"]*3) for item in strings: print("".join(item)) 这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该

我正在使用python itertools模块创建一个生成器,它可以从
aaa
迭代到
ccc

我想不出从某个位置开始迭代的方法 例如,如果输入是aba,迭代将从该位置继续 这就是我的代码现在的样子:

from itertools import product

strings = itertools.product(*["abc"]*3)
for item in strings:
    print("".join(item))

这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该适用于任何iterable,但可能有一个
产品
特定的解决方案,允许您跳过生成您不关心的值

from itertools import dropwhile, product

def resume(iterable, sentinel):
    yield from dropwhile(lambda x: x != sentinel, iterable)

for t in resume(product('abc', repeat=3), ('a', 'b', 'a')):
    print(*t)

这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该适用于任何iterable,但可能有一个
产品
特定的解决方案,允许您跳过生成您不关心的值

from itertools import dropwhile, product

def resume(iterable, sentinel):
    yield from dropwhile(lambda x: x != sentinel, iterable)

for t in resume(product('abc', repeat=3), ('a', 'b', 'a')):
    print(*t)

您可以包括程序的预期输入和输出吗?我编辑为post以使其更清晰。您可以包括程序的预期输入和输出吗?我编辑为post以使其更清晰。