For example, starting from {1,2,3,4}, I want to generate all permutations like {1,3,2,4},{1,3,4,2},{3,4,1,2} which preserve the order of e.g first two terms {1,2} and the order of e.g. last two terms {3,4}
I've tried to use the Permutation function, but it cannot preserve the order of {1,2} and {3,4}.

Tuples[{1, 2, 3}, 3]orPermutations[{1, 2, 3}]? – e.doroskevic Jul 14 '16 at 09:35oP2would you be willing to post a self-Q&A to share it? – Mr.Wizard Jul 15 '16 at 05:35Pick[#, OrderedQ /@ (# /. (1 | 2 | 3) -> Nothing)] &@ Pick[#, OrderedQ /@ (# /. (4 | 5 | 6 | 7) -> Nothing)] &@ Permutations[Range[7]]– user1066 Jul 15 '16 at 09:23Pick[#, OrderedQ /@ (# /. (1 | 7) -> Nothing)] &@ Pick[#, OrderedQ /@ (# /. (2 | 3 | 4 | 5 | 6) -> Nothing)] &@ Permutations[Range[7]]. – user1066 Jul 15 '16 at 11:35Pick[#, OrderedQ /@ (# /. (2 | 3 | 4) -> Nothing)] &@ Permutations[Range[5]]– user1066 Jul 15 '16 at 11:37