import itertools
value_text = [['an applean orange', 'an orangean apple'], ['a pena ball', 'a balla pen']]
value_text =  itertools.product(*value_text)
solid_text = ['I have ', '.You have ', '.']
copy_text = solid_text[:]
text_seq = []
new_seq = []
for k,text in enumerate(value_text):
    length = len(solid_text) + len(text)
    pri_text = list(text[:])
    for j in range(length):
        if j%2 == 1:

            a = list(pri_text).pop(0)
            print("pri_textの値:",list(pri_text))
            print(a,"が入りました。")
            text_seq.append(a)                      
        else:
            b = solid_text.pop(0)
            print("solid_textの値",solid_text)
            print(b,"が入りました。")
            text_seq.append(b)
    new_seq.append(text_seq)
    solid_text = copy_text[:]
    text_seq = []

print("結果",new_seq)

このコードを実行することによる狙い。
偶数ごとにsolid_text、奇数ごとにvalue_textを順次取り出しては新しいリスト入れ込んでいき、一つのシーケンスへと合体させていく処理を実装したいです。

例えば、最初のシーケンス実行後は、
['I have ','an applean orange','.You have ','a pena ball','.']
という状況を作りたいです。
そのためには、if j%2 == 1:以下にある、(pri_text).pop(0)で、少なくともこのpri_textの内容が、順次取り出されて少なくなっていってくれる必要があります。
ところが、popメソッドの利点である、漸減処理ができません。
したがって、pri_textの内容は、どんなに実行しても、元の内容のままであります。
おかげで、結果はこうなります。
結果

[['I have ', 'an applean orange', '.You have ', 'an applean orange', '.'], ['I have ', 'an applean orange', '.You have ', 'an applean orange', '.'], ['I have ', 'an orangean apple', '.You have ', 'an orangean apple', '.'], ['I have ', 'an orangean apple', '.You have ', 'an orangean apple', '.']]


強制的に実現するに当たり、コードを以下のようにしました。
結果は、望む形となりました。

強制的実現のためのコード:

import itertools
value_text = [['an applean orange', 'an orangean apple'], ['a pena ball', 'a balla pen']]
value_text =  itertools.product(*value_text)
solid_text = ['I have ', '.You have ', '.']
copy_text = solid_text[:]
text_seq = []
new_seq = []
for k,text in enumerate(value_text):
    length = len(solid_text) + len(text)
    pri_text = list(text[:])
    for j in range(length):
        if j == 1:

            a = list(pri_text).pop(0)
            print("pri_textの値:",list(pri_text))
            print(a,"が入りました。")
            text_seq.append(a)    
        elif j == 3:       
            a = list(pri_text).pop(1)
            print("pri_textの値:",list(pri_text))
            print(a,"が入りました。")
            text_seq.append(a)    
        else:
            b = solid_text.pop(0)
            print("solid_textの値",solid_text)
            print(b,"が入りました。")
            text_seq.append(b)
    new_seq.append(text_seq)
    solid_text = copy_text[:]
    text_seq = []

print("結果",new_seq)

結果(望む形)

[['I have ', 'an applean orange', '.You have ', 'a pena ball', '.'], ['I have ', 'an applean orange', '.You have ', 'a balla pen', '.'], ['I have ', 'an orangean apple', '.You have ', 'a pena ball', '.'], ['I have ', 'an orangean apple', '.You have ', 'a balla pen', '.']]

質問

 望む形になるために、popが漸減的処理を行ってほしいのですが、そうならない理由はなぜでしょうか?
 コードを実行していただくとわかりますが、solid_textと、pri_textは、このように変化します。

solid_text:
 solid_textの値 ['.You have ', '.']
 solid_textの値 ['.']
 solid_textの値 []
 pri_text:
 pri_textの値: ['an applean orange', 'a balla pen']
 pri_textの値: ['an orangean apple', 'a balla pen']

以下ずっとこれ。

このため、pop(0)から順に取り出そうとしても、全くpri_textの内容が減ってくれないため、常に'an orangean apple'側が選ばれてしまいます。(なぜあえてpri_textに一度要素をコピーしているかというと、値だけを得れば後はただのリスト同様、変化してくれるとおもったからです。)

 solid_textの方は、しっかりpopの効果が働いているのに対して、なぜvalue_textイテレータ型から取られた、text変数は、(別の変数に値をうつしたとしても、)popの影響を受けないのでしょうか?

 そして、これを解決するいい方法はありませんか?現在ごり押しで結果を得ようとしていますし、そこまでのスキルの持ち主でもないため、エレガントな方法を探しています。なお、
value_textと、solid_textは、サンプルコードでは固定長ですが、実際は、可変長ですので、よろしくおねがいします。
(追記)
mjyさんのご指摘により、pri_textをたlistで2回くくってしまったがために、popによる処理が反映されていないということでした。
 そこで、これは自己回答として残し、新しい疑問は再度質問として載せようとおもいます。