forループ中での3次元配列への数字の挿入と条件分岐で困っています。

li1[i][j][k]の数字とli2[l][1]が一致した際に、li2[l][0]とli2[l][2]を、li1の中のli2[l][1]の前後に挿入したいと考えています。

li1=[[[0, 1, 10], [0, 2, 10]], 
 [[0, 1, 3, 5, 10], [0, 1, 3, 6, 10], [0, 1, 4, 5, 10], [0, 1, 4, 6, 10], [0, 2, 3, 5, 10], [0, 2, 3, 6, 10], [0, 2, 4, 5, 10], [0, 2, 4, 6, 10]]]

li2=[[7,1,8], [9,2,11], [12,3,13], [14,4,15], [16,5,17], [18,6,19]]

for i in range(len(li1)):
    for j in range(len(li1[i])):
        for k in range(1,len(li1[i][j])-1):
            for l in range(len(li2)):#
                if li1[i][j][k]==li2[l][1]:
                    li1[i][j].insert(k,li2[l][0])
                    li1[i][j].insert(k+2,li2[l][2])


print(li1)


>>> 
[[[0, 7, 1, 8, 10], [0, 9, 2, 11, 10]], 
 [[0, 7, 7, 7, 1, 8, 8, 8, 3, 5, 10], [0, 7, 7, 7, 1, 8, 8, 8, 3, 6, 10], [0, 7, 7, 7, 1, 8, 8, 8, 4, 5, 10], [0, 7, 7, 7, 1, 8, 8, 8, 4, 6, 10], [0, 9, 9, 9, 2, 11, 11, 11, 3, 5, 10], [0, 9, 9, 9, 2, 11, 11, 11, 3, 6, 10], [0, 9, 9, 9, 2, 11, 11, 11, 4, 5, 10], [0, 9, 9, 9, 2, 11, 11, 11, 4, 6, 10]]]

最終的な結果として3次元配列のresultを導出したいと考えています。
上の結果ですと7や8などが3回連続してしまっていたり、下のresultと全く異なった結果となってしまっている状況です。

result=[[[0,7,1,8,10],[0,9,2,11,10]],
    [[0,7,1,8,12,3,13,18,6,19,10],[0,7,1,8,12,3,13,18,6,19,10],[0,7,1,8,14,4,15,16,5,17,10], [0,7,1,8,14,4,15,18,6,19,10], [0, 2, 3, 5,10], [0,9,2,11,12,3,13,18,6,19,10], [0,9,2,11,14,4,15,16,5,17,10], [0,9,2,11,14,4,15,18,6,19,10]]]

別の書き方でも全く問題ないです。よろしくお願いします。