Python: lista de listas

Ejecutando el codigo

listoflists = []
list = []
for i in range(0,10):
    list.append(i)
    if len(list)>3:
        list.remove(list[0])
        listoflists.append((list, list[0]))
print listoflists

devoluciones

[([7, 8, 9], 0), ([7, 8, 9], 0), ([7, 8, 9], 0), ([7, 8, 9], 1), ([7, 8, 9], 2), ([7, 8, 9], 3), ([7, 8, 9], 4), ([7, 8, 9], 5), ([7, 8, 9], 6), ([7, 8, 9], 7)]

así, de alguna manera, el primer argumento de cada tupla (lista) se actualiza cada vez en la lista de listas, pero la segunda lista de argumentos [0] no lo está. ¿Alguien puede explicar lo que está pasando aquí y sugerir una manera de solucionar esto? Me gustaría dar salida

[([0],0), ([0,1],0), ...

Respuestas a la pregunta(7)

Su respuesta a la pregunta