Thanks to @charlesoblack (first time contributor ya!) there is a pygame.Color.lerp() function now. It returns a linear interpolation.
It might be an interesting extension to this to allow interpolating in a colour space based on how humans perceive colour. That could give better results if you want to make a sequence of shades at regular intervals. If anyone's interested in this topic, there's a good talk about colour maps in matplotlib: