function find_all_n_possible_contiguous_clusterings(list,fixed_dividers,mobile_dividers)
%description: for a vector 1:x, finds all possible ways of splitting that vector into n clusterings, where any contiguous elements can be in the same cluster.
%For example, clusterings from the vector 1:4 that yield 2 clusters would be [1] and [2 3 4], [1 2] and [3 4], or [1 2 3] and [4].
%called by: cluster_asynch_based_on_phasic, temporary_asynch_analyzer(deprecated), find_all_onethroughn_possible_continguous_groupings(deprecated)
%calls: itself and grouper
%notes: recursive
%code confirm date: sep 20, 2009

global complete_list_of_clusterings_global

if isempty(fixed_dividers),fdendplusone=1;else fdendplusone=fixed_dividers(end)+1;end

for divider_fixed_at_this_level=fdendplusone:(length(list)-1)-(length(mobile_dividers)-1)
    if length(mobile_dividers)>1
        find_all_n_possible_contiguous_clusterings(list,[fixed_dividers divider_fixed_at_this_level],mobile_dividers(2:end));                
    else %if this is the last mobile divider, this is the end of the line, so find the current clustering and apend it to the global variable containing all clusterings
        current_clustering=grouper(list,[fixed_dividers divider_fixed_at_this_level]); 
        complete_list_of_clusterings_global{end+1}=current_clustering;
    end
end