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.

[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/UtpFp.jpg