def generate_matches(patterns, nodes):
    if not patterns:
        yield 0, {}
    else:
        p, rest = patterns[0], patterns[1:]
        for c0, r0 in p.generate_matches(nodes):
            if not rest:
                yield c0, r0
            else:
                for c1, r1 in generate_matches(rest, nodes[c0:]):
                    r = {}
                    r.update(r0)
                    r.update(r1)
                    yield c0 + c1, r
Partially test challenge response.
dataset/ETHPy150Open ctxis/canape/CANAPE.Scripting/Lib/lib2to3/pytree.py/generate_matches--crossover with--dataset/ETHPy150Open nlloyd/SubliminalCollaborator/libs/twisted/words/test/test_jabbersaslmechanisms.py/DigestMD5Test.test_getResponse