Is there such a thing as a moving bandpass filter algorithm?
Depends on what exactly you want to do but easiest would be Heterodyne detector: multiply with a local oscillator (cos() and sin()) with variable frequency followed by a lowpass with a fixed bandwidth. The cutoff frequency of the lowpass is equivalent to the bandwidth of the equivalent bandpass. The frequency of the local oscillator determines the center frequency. 

If you need non-uniform bandwidth (like 3rd octave for example), things get a little more complicated. You can do this primarily through frequency "warping". 

Finally, you can always table and/or interpolate filter coefficients.