ブラボーです。神ですね。>>351>1
再帰関数って私は学校の時に、なんか演習でフラクタル図形を描いた以外にはやった事がなくて、参っていました。今後、>>351を参考に作りたいと思いますね。

>>348
実は、私はこれについて、なにも調べたりせずに独自で作ってました。で、こんなのが出来てきました。凶悪です。
作成中で、まだ関数にしてないですし、変数の名前もヒドイですが、結果は結構出ています。インデントはここに貼るために全角スペースにしました。便利なので、Kaaeditで作っています。おまけに、コメントも

from operator import mul
from random import randint
deg = randint(2,5)
print '= '*20,deg
degKai = [reduce(mul, range(1,i+1)) for i in range(deg,0,-1)]+[1]
lsRet = []
for i in range(0,degKai[0],1):
  tmp =[]
  lsDeg = range(deg)
  for j in range(1,deg+1):
    tmp.append(lsDeg.pop((i/degKai[j])%(deg-j+1)))
  lsRet.append(tmp)
for l in lsRet: print l