Algorithm to enumerate all complete schedulings of finals tests?
You're asking to enumerate all maximum matchings in a bipartite graph.  Unfortunately that problem is #P-complete, so there is unlikely to be any efficient algorithm that works on arbitrary size graphs.

There might be algorithms that work well enough for your situation, given the small numbers you're dealing with.  For instance, a simple approach is to use a backtracking search.  First nondeterministically choose a period for final $F_1$ (out of all possibilities).  Next choose a period for final $F_2$ (out of all possibilities, excluding the periods that have already been chosen), and so on.  If at any point there are no legal choices available (e.g., you want to choose a period for $F_i$ but all options have already been filled with a final), terminate.  Now replace the nondeterministic choices with branching over all possibilities, in a breadth-first or depth-first search, and that should provide a way to enumerate all valid schedules.

See also Counting and finding all perfect/maximum matchings in general graphs and https://en.wikipedia.org/wiki/Matching_%28graph_theory%29#Counting_problems for references to the literature on the general problem.