About having analytic control over any algorithm which finds perfect matchings. A trivial algorithm to decompose a degree-d (n,n)-bipartite graph into d disjoint perfect matchings is this :  direct all the edges from left to right and put capacity one on each of them - then add a super-source and a super sink with appropriately directed edges from them to each of the vertices on their side with capacity one - now run max-flow on it and that picks out a perfect matching - now remove this perfect matching and repeat - continue doing this till you have exhausted all the original edges - this clearly gives you the needed decomposition of the original graph into disjoint perfect matchings.

So one can think of this algorithm as basically returning you a set of d disjoint permutations on the set of n elements.


Can one say what permutations will be returned? (Will it always return the same set of permutations in the same sequence?) 
Its possible that the answer to the above question is implementation dependent and in that case is there some "standard" implementation for which one can analytically write down the permutations that would be returned as a function of the input graph? 
Or is there any other way to solve this question where one analytically knows the permutations that will be generated?
Will it always return the same set of permutations in the same sequence?


No.  If you call the algorithm twice with the same input, it's not necessarily guaranteed to give the same output both times.  Many standard max-flow algorithms are non-deterministic, so there is no such guarantee.  For instance, consider any algorithm based on selecting augmenting paths.  If at any iteration there are multiple augmenting paths that would be acceptable, the max-flow algorithm will typically select one of them arbitrarily.  Consequently, it is not deterministic.

However, any such algorithm can easily be made to be deterministic by simply specifying a deterministic rule for resolving all non-deterministic choices.  For instance, whenever there are multiple acceptable choices, you can sort all of the acceptable options using some pre-specified order (say, lexicographic order) and always take the first.