最初に 競プロの問題を解いていると考えられる順列を全列挙したい時がある。毎回実装すると時間を食ってしまうので関数にして時短したい。 考え方 はじめに[1, 2]の順列を全列挙する場合を考えてみる。考えられる順列は、 1 – 22 – 1 の2通りである。 次に[0, 1, 2]の順列を全列挙する場合を考える。 0 – 1 – 20 – 2 – 12 – 0 – 12 – 1 – 01 – 0 – 21 – 2 – 0 の6通りである。 ここで0 – 1 – 2、 0 – 2 – 1をみると、[1, 2]の順列を全列挙したものの先頭に0がくっついていることがわかる。0 – ([1, 2]の順列全列挙)というわけである。 残りの 2 – 0 – 1、2 – 1 – 0、1 – 0 – 2、1 – 2 – 0も同様に2 – ([0, 1]の順列全列挙)、 1 – ([0, 2]の順列全列挙)で求