How to cancel and restart a coroutine

I’m trying and start it up again from the beginning

e.g.

print 1

wait for seconds

print 2

wait for seconds

print 3

I know how to start and stop coroutines, but when I stop at, say 2, and I start again, it just resumes and continues to 3, instead of going back to 1.

If I want it to start at 1 again, have to wait for the whole coroutine to finish before starting it again.

Why is it even called “StopCoroutine()” when it essentially just puts the coroutine on pause

How do I cancel a coroutine and restart it from the beginning?

it seems like something that should be simple to do

https://forum.unity3d.com/threads/how-to-cancel-and-restart-a-coroutine.435493/