You can do it this way:
- Create a Circle, shift it from its origin in Edit mode, go back in Object mode, create an Empty on the same point as the origin of the circle. Assign an Array modifier to the Circle with a Count of 5, deactivate Relative Offset, activate Object Offset and choose the Empty. Rotate the Empty 72° on the Z axis. Apply the Array modifier, you now have 5 circles.
- Extrude one time your 5 circles and repeat with shift R so that you have several extrudes (of course you can also decide to make all these extrusions, or edge loops creation, on the original circle, before applying the previous array).
- Assign a Simple Deform modifier to your object, with a Deform Angle of 72°. You can Apply this modifier if you want.
- Assign an Array modifier to your Object and choose a factor of 1 on the Z axis. Maybe enable Merge and First/Last so that top sticks correctly to bottom of the array copy. Choose the Count you want.
- Create a bezier curve, go in Edit mode and make sure the direction is the one you want, if not W > Switch Direction. Put the Origin at its starting point.
- Put your object at the beginning of the curve.
- Assign a Curve modifier to your object, choose your bezier curve as the Object. It should follow the curve.
- You can add a Subdivision Surface modifier to your object and smooth it.