r1 is start radius, r2 is end radius, re is number of revolutions, a1 is start angle, a2 is end angle.
r1 = 2;
r2 = 5;
re = 3;
a1 = 1 Pi/4;
a2 = 1 Pi/4;
PolarPlot[(
a2 r1 - a1 r2 + 2 Pi r1 re)/(-a1 + a2 +
2 Pi re) + ((-r1 + r2) x)/(-a1 + a2 + 2 Pi re), {x, a1, 2 Pi re + a2}]
Clear[r1, r2, re, a1, a2]

And here is how the eqaution was derived:
eq = u + v x;
eq == r1 /. x -> a1;
eq == r2 /. x -> re 2 Pi + a2;
eq /. Solve[{%%, %}, {u, v}]
{-((-a2 r1 + a1 r2 - 2 Pi r1 re)/(-a1 + a2 +
2 Pi re)) - ((-r1 + r2) x)/(a1 - a2 - 2 Pi re)}
Here the same equation use inside ParametricPlot to allow shifting of the center of the spiral.
r1 = 2;
r2 = 5;
re = 3;
a1 = 1 Pi/4;
a2 = 1 Pi/4;
center = {2, 3};
ParametricPlot[
FromPolarCoordinates@{(a2 r1 - a1 r2 + 2 Pi r1 re)/(-a1 + a2 +
2 Pi re) + ((-r1 + r2) x)/(-a1 + a2 + 2 Pi re), x} + center //
Evaluate, {x, a1, 2 Pi re + a2}]
Clear[r1, r2, re, a1, a2]

In the form of function it would be:
spiral[c_, a1_, a2_, r1_, r2_, re_] :=
ParametricPlot[
FromPolarCoordinates@{(a2 r1 - a1 r2 + 2 Pi r1 re)/(-a1 + a2 +
2 Pi re) + ((-r1 + r2) x)/(-a1 + a2 + 2 Pi re), x} + c //
Evaluate, {x, a1, 2 Pi re + a2}]
spiral[{2, 3}, Pi/4, 3 Pi/4, 2, 5, 7]

For opposite direction of rotation use negative re.