Pythonでの順列生成には次の実装があります。
def perms(v):
'''
Generates permutations for sequence v
:param v: sequence for permutations
'''
if not v:
yield ()
else:
for p in perms(v[1:]):
for i in range(len(v)):
yield p[:i] + (v[0],) + p[i:]
それは itertools.permutations よりも高速に動作します (また、少ないことも知っています)。より高速な(またはよりコンパクトな)実装はありますか。ベクトルの挿入/削除で実装しようとしましたが、遅いようです。