No recursion needed:
declare @Start int = year(getdate()) - 15;
declare @Upto int = year(getdate()) - 100;
with eTally(n) as (select top(@Start - @Upto + 1) ROW_NUMBER() over (order by (select null)) - 1
from (values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))dt(n) cross join
(values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))dt1(n)
)
select @Start - n from eTally;