One issue i have with this is to make it so it doesnt have a massive trail of previously displayed sprite images i have to reload the surface image before i blit the next sprite image.
the flicker is caused by constantly reloading the image. Always load the image once. The trail of images can be removed by scr.fill((0,0,0)), filling the image with black each frame, thus removing each trial from the previous frame
thats all i could come up with, without seeing the code