This sounds like either a starter motor or flywheel ring gear problem. Firstly check the wiring between the solenoid and the starter motor for security of connections. Remove the spark plug and top screen to make it easier to turn the engine by hand. remove the starter motor and check the condition of the plastic sprocket. If it has missing teeth or does not move easily up and down the spiral replace it.
with the starter motor removed, check the ring gear on the flywheel for distortion and missing teeth. if damaged, the cheapest answer is a second hand flywheel. finally, the brushes in the starter motor may be worn, necessitating replacement of the motor assembly
graham, January 2011