• 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;