using System;
using System.Linq;
using System.Collections.Generic;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
			int[] arr = { 1, 2, 3, 4 };
			IEnumerable<IEnumerable<int>> result = arr.Select(x => new List<int>() { x });
			for (int i = 1; i < arr.Length; i++)
			    result = result.SelectMany(x => arr.Except(x), (x, y) => x.Concat(new int[] { y }));
			foreach (var item in result)
			{
			    foreach (int i in item)
			        Console.Write(i + " ");
			    Console.WriteLine();
			}
        }
    }
}
 
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpuYW1lc3BhY2UgQ29uc29sZUFwcDEKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CgkJCWludFtdIGFyciA9IHsgMSwgMiwgMywgNCB9OwoJCQlJRW51bWVyYWJsZTxJRW51bWVyYWJsZTxpbnQ+PiByZXN1bHQgPSBhcnIuU2VsZWN0KHggPT4gbmV3IExpc3Q8aW50PigpIHsgeCB9KTsKCQkJZm9yIChpbnQgaSA9IDE7IGkgPCBhcnIuTGVuZ3RoOyBpKyspCgkJCSAgICByZXN1bHQgPSByZXN1bHQuU2VsZWN0TWFueSh4ID0+IGFyci5FeGNlcHQoeCksICh4LCB5KSA9PiB4LkNvbmNhdChuZXcgaW50W10geyB5IH0pKTsKCQkJZm9yZWFjaCAodmFyIGl0ZW0gaW4gcmVzdWx0KQoJCQl7CgkJCSAgICBmb3JlYWNoIChpbnQgaSBpbiBpdGVtKQoJCQkgICAgICAgIENvbnNvbGUuV3JpdGUoaSArICIgIik7CgkJCSAgICBDb25zb2xlLldyaXRlTGluZSgpOwoJCQl9CiAgICAgICAgfQogICAgfQp9Cg==