Iteration over doc.Paragraphs
probably creates a Python wrapper object to each underlying COM object dynamically. Since you do not store para
anywhere, the wrapper object is destroyed when it goes out of scope, and the next iteration may create a new object at the same memory address.
Try this instead and see if the result is different:
paras = list(doc.Paragraphs)
for para in paras:
print repr(para)