You can do it with an *Array* modifier with an empty as *Object Offset*, just move, rotate and scale the empty a bit, then you'll need to edit the mesh so that the instances stick to each other:

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

Another solution is an *Array* along a spirale curve, and you scale down the vertices radius of the curve from bottom to top:

[![enter image description here][2]][2]


  [1]: https://i.sstatic.net/WF9uZ.jpg
  [2]: https://i.sstatic.net/MIgrN.jpg