If I get your question right you want both the number of parts, the combination within the parts and order within the parts to be different. This may be a little difficult to implement but definitely doable.
I am assuming that you are going to have only title, text and image type in each of these parts.
Using fieldset module create three field collections name weighted title(containing textfield with cardinality as one and weight[integer value with cardinality as one]), weighted image(image field and weight field) and weighted text(containing a text field and weight field)
Now create a field set named type, add weighted title, weighted image and weighted text as the fields in this fieldset. Make sure that you keep the cardinality of these fields as infinity. To make sure that it is not confusing, we will need to remove the drag and drop option withing the type fieldset.
The UI needs to be worked on to make it more intuitive. Without these enhancements to implement
part two title
image image image text image
We will have to do it as
Solution : title 1 image 2
image 3 image 4 image 6 text 4
part three title
text image text
Solution : title 1 text 2 text 4 image 3
Hope you are not lost :P