Subsequences of length are constructed below MinLen =< Len =< MaxLen. I do not know why you renamed lengthand member, therefore, I am going to use the originals. sublist/4calls yours sublist/2.
sublist(Sub,List,MinLen,MaxLen) :-
between(MinLen,MaxLen,Len),
length(Sub,Len),
sublist(Sub,List).
, length , . choose/2
choose(Sub,List) :-
sublist(Sub,List,1,2),
member(f,Sub).
. , :
choose(Sub,List),
(Sub = [f] ; Sub = [f,_] ; Sub = [_,f]),
sublist(Sub,List).