I just realized that your title answered my question. :o
The way that I know to do this is to cycle through a list of sprites and keep a timer running. When time's up, display the next sprite.
This is how the livewires package handles animation.
If that turns out to be computationally expensive, you could make a sprite group and change out only some of the sprites.
Hope it helps,
Jeff