in reply to Golf (Inspired): Repeated Phrases

I find this question unclear. Suppose that $m is 2 and $n is 3. Given that the phrase "this is strange" appears, do you want to see ("this is strange") returned or ("this is strange", "this is", "is strange")?

From both a programming and a spec problem I like only looking for phrases of a given size (which was what was done in the story). From that you can derive your solution through:

sub p{ ($m,$n,@_)=@_;map{f($_,@_)}$m..$n }
An incidental note. The mathematician in me reads your phrase "a list of" and wants to offer the following cheat as a "solution":
sub p{()}
(It is a list, and everything in it is a phrase of the right size that appears in both lists!)

And, of course, I can show that all golf can be improved with the utterly ridiculous:

sub p{}