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 = list('banana')
target = list('ban')
replacement = list('taxicab')
replace_sublist(seq, target, replacement)
print(seq)
aW1wb3J0IGl0ZXJ0b29scwoKZGVmIGZpbmRfc3VibGlzdHMoc2VxLCBzdWJsaXN0KToKICAgIGxlbmd0aCA9IGxlbihzdWJsaXN0KQogICAgZm9yIGluZGV4LCB2YWx1ZSBpbiBlbnVtZXJhdGUoc2VxKToKICAgICAgICBpZiB2YWx1ZSA9PSBzdWJsaXN0WzBdIGFuZCBzZXFbaW5kZXg6aW5kZXgrbGVuZ3RoXSA9PSBzdWJsaXN0OgogICAgICAgICAgICB5aWVsZCBpbmRleCwgaW5kZXgrbGVuZ3RoCgpkZWYgcmVwbGFjZV9zdWJsaXN0KHNlcSwgdGFyZ2V0LCByZXBsYWNlbWVudCwgbWF4cmVwbGFjZT1Ob25lKToKICAgIHN1Ymxpc3RzID0gbGlzdChmaW5kX3N1Ymxpc3RzKHNlcSwgdGFyZ2V0KSkKICAgIGlmIG1heHJlcGxhY2U6CiAgICAgICAgc3VibGlzdHMgPSBpdGVydG9vbHMuaXNsaWNlKHN1Ymxpc3RzLCBtYXhyZXBsYWNlKQogICAgZm9yIHN0YXJ0LCBlbmQgaW4gc3VibGlzdHM6CiAgICAgICAgc2VxW3N0YXJ0OmVuZF0gPSByZXBsYWNlbWVudAoKc2VxID0gbGlzdCgnYmFuYW5hJykKdGFyZ2V0ID0gbGlzdCgnYmFuJykKcmVwbGFjZW1lbnQgPSBsaXN0KCd0YXhpY2FiJykKCnJlcGxhY2Vfc3VibGlzdChzZXEsIHRhcmdldCwgcmVwbGFjZW1lbnQpCgpwcmludChzZXEp
['t', 'a', 'x', 'i', 'c', 'a', 'b', 'a', 'n', 'a']