import itertools
def find_sublists(seq, sublist):
length = len(sublist)
for index, value in enumerate(seq):
if value == sublist[0] and seq[index:index+length] == sublist:
yield index, index+length
def replace_sublist(seq, target, replacement, maxreplace=None):
sublists = list(find_sublists(seq, target))
if maxreplace:
sublists = itertools.islice(sublists, maxreplace)
for start, end in sublists:
seq[start:end] = replacement
seq = [3, 5, 10, 3, 5, 10]
target = [3, 5, 10]
replacement = [9, 7]
replace_sublist(seq, target, replacement)
print(seq)
aW1wb3J0IGl0ZXJ0b29scwoKZGVmIGZpbmRfc3VibGlzdHMoc2VxLCBzdWJsaXN0KToKICAgIGxlbmd0aCA9IGxlbihzdWJsaXN0KQogICAgZm9yIGluZGV4LCB2YWx1ZSBpbiBlbnVtZXJhdGUoc2VxKToKICAgICAgICBpZiB2YWx1ZSA9PSBzdWJsaXN0WzBdIGFuZCBzZXFbaW5kZXg6aW5kZXgrbGVuZ3RoXSA9PSBzdWJsaXN0OgogICAgICAgICAgICB5aWVsZCBpbmRleCwgaW5kZXgrbGVuZ3RoCgpkZWYgcmVwbGFjZV9zdWJsaXN0KHNlcSwgdGFyZ2V0LCByZXBsYWNlbWVudCwgbWF4cmVwbGFjZT1Ob25lKToKICAgIHN1Ymxpc3RzID0gbGlzdChmaW5kX3N1Ymxpc3RzKHNlcSwgdGFyZ2V0KSkKICAgIGlmIG1heHJlcGxhY2U6CiAgICAgICAgc3VibGlzdHMgPSBpdGVydG9vbHMuaXNsaWNlKHN1Ymxpc3RzLCBtYXhyZXBsYWNlKQogICAgZm9yIHN0YXJ0LCBlbmQgaW4gc3VibGlzdHM6CiAgICAgICAgc2VxW3N0YXJ0OmVuZF0gPSByZXBsYWNlbWVudAoKc2VxID0gWzMsIDUsIDEwLCAzLCA1LCAxMF0KdGFyZ2V0ID0gWzMsIDUsIDEwXQpyZXBsYWNlbWVudCA9IFs5LCA3XQoKcmVwbGFjZV9zdWJsaXN0KHNlcSwgdGFyZ2V0LCByZXBsYWNlbWVudCkKCnByaW50KHNlcSk=