>>910
> a[]={1,2,3,4}から4P2とか4C2にて配列をとりだしたりするものです。

何がそんなに難しいのかわからんが..

一般的に、いま、xCyにて配列を取り出すとする。

1) 長さyの数字Lを用意。y=3ならL=000。
2) Lをx進数と考えて1ずつ足していく。
3) 桁あふれしてL=000になれば終了。
4) L=210のように上位桁のほうがその下位桁より大きな数字に
なっていなければ2)に戻る
5) たとえばL=310なら、{a[3],a[1],a[0]}なる配列を生成。2)に戻る。

※1
4)の条件をゆるめて、「別の桁に同じ数字があれば2)に戻る」
とすればxPyが取り出せる。

※2
4)の条件をうまく加味すればもう少し効率的に取り出せる。