import timeit
import re
 
a=["aa","bb","cc"]
b="111^222^3333^44444"
def f1():
    m=b.split("^")
    s=''
    for i in range(len(a)):
        s+=m[i]
        s+=a[i]
    s+=m[-1]
    return s
 
def f2():
    m=b.split("^")
    s=[]
    for i in range(len(a)):
        s.append(m[i])
        s.append(a[i])
    s.append(m[-1])
    return "".join(s)
 
def f3():
    m=b.split("^")
    return "".join(m[i]+a[i] for i in range(len(a)))+m[-1]
 
r=re.compile("\^")
def f4():
    s=""
    i=0
    for t,m in enumerate(r.finditer(b)):
        s+=b[i:m.start()]+a[t]
        i=m.end()
    s+=b[i:]
    return s
 
def f5():
    s=b
    for x in a:
        s=s.replace("^",x,1)
    return s
 
 
print(f1(),f2(),f3(),f4(),f5())
 
print(f"f1: {timeit.timeit(f1,number=100000,globals=globals())}")
print(f"f2: {timeit.timeit(f2,number=100000,globals=globals())}")
print(f"f3: {timeit.timeit(f3,number=100000,globals=globals())}")
print(f"f4: {timeit.timeit(f4,number=100000,globals=globals())}")
print(f"f5: {timeit.timeit(f5,number=100000,globals=globals())}")
 
				aW1wb3J0IHRpbWVpdAppbXBvcnQgcmUKCmE9WyJhYSIsImJiIiwiY2MiXQpiPSIxMTFeMjIyXjMzMzNeNDQ0NDQiCmRlZiBmMSgpOgogICAgbT1iLnNwbGl0KCJeIikKICAgIHM9JycKICAgIGZvciBpIGluIHJhbmdlKGxlbihhKSk6CiAgICAgICAgcys9bVtpXQogICAgICAgIHMrPWFbaV0KICAgIHMrPW1bLTFdCiAgICByZXR1cm4gcwoKZGVmIGYyKCk6CiAgICBtPWIuc3BsaXQoIl4iKQogICAgcz1bXQogICAgZm9yIGkgaW4gcmFuZ2UobGVuKGEpKToKICAgICAgICBzLmFwcGVuZChtW2ldKQogICAgICAgIHMuYXBwZW5kKGFbaV0pCiAgICBzLmFwcGVuZChtWy0xXSkKICAgIHJldHVybiAiIi5qb2luKHMpCgpkZWYgZjMoKToKICAgIG09Yi5zcGxpdCgiXiIpCiAgICByZXR1cm4gIiIuam9pbihtW2ldK2FbaV0gZm9yIGkgaW4gcmFuZ2UobGVuKGEpKSkrbVstMV0KCnI9cmUuY29tcGlsZSgiXF4iKQpkZWYgZjQoKToKICAgIHM9IiIKICAgIGk9MAogICAgZm9yIHQsbSBpbiBlbnVtZXJhdGUoci5maW5kaXRlcihiKSk6CiAgICAgICAgcys9YltpOm0uc3RhcnQoKV0rYVt0XQogICAgICAgIGk9bS5lbmQoKQogICAgcys9YltpOl0KICAgIHJldHVybiBzCgpkZWYgZjUoKToKICAgIHM9YgogICAgZm9yIHggaW4gYToKICAgICAgICBzPXMucmVwbGFjZSgiXiIseCwxKQogICAgcmV0dXJuIHMKCgpwcmludChmMSgpLGYyKCksZjMoKSxmNCgpLGY1KCkpCgpwcmludChmImYxOiB7dGltZWl0LnRpbWVpdChmMSxudW1iZXI9MTAwMDAwLGdsb2JhbHM9Z2xvYmFscygpKX0iKQpwcmludChmImYyOiB7dGltZWl0LnRpbWVpdChmMixudW1iZXI9MTAwMDAwLGdsb2JhbHM9Z2xvYmFscygpKX0iKQpwcmludChmImYzOiB7dGltZWl0LnRpbWVpdChmMyxudW1iZXI9MTAwMDAwLGdsb2JhbHM9Z2xvYmFscygpKX0iKQpwcmludChmImY0OiB7dGltZWl0LnRpbWVpdChmNCxudW1iZXI9MTAwMDAwLGdsb2JhbHM9Z2xvYmFscygpKX0iKQpwcmludChmImY1OiB7dGltZWl0LnRpbWVpdChmNSxudW1iZXI9MTAwMDAwLGdsb2JhbHM9Z2xvYmFscygpKX0iKQo=