Ok I have made the list using Table, the section of program that looks through the list and finds solutions still waits till it has found all solutions first before it prints them out.
list = Table[{i^3, j^3, i^3 + j^3}, {i, 1, 1000}, {j, i + 1,
1000}]; list = Partition[Flatten[list], 3]; list =
SortBy[list, #[[3]] &];
Do[If[list[[q, 3]] == list[[q + 1, 3]],
Print[TextCell[
Row[{ExpressionCell[list[[q, 1]]]^3, "+",
ExpressionCell[list[[q, 2]]]^3, " = ",
ExpressionCell[list[[q + 1, 1]]]^3, "+",
ExpressionCell[list[[q + 1, 2]]]^3, " = ",
ExpressionCell[list[[q, 3]]]}]]]], {q, 1,
Length[list] - 1}] // Timing
That is smaller than the previous program but still shows the effect. just do this simple program and see if it delay prints.
Do[Print[n, " ", n^2], {n, 1, 1000}]
even that waits till its finished all 1000 before it prints the first. That's my concern if i was to say print 1 to 1000000 it wouldn't print anything till all had been done in memory first.
Paul