こちらの順列を参考に同じ物を含む順列作ってみた。
Python で順列を生成 | すぐに忘れる脳みそのためのメモ
def permutations(L): if L == []: return [[]] else: ret = [] # set(集合)型で重複を削除、ソート S = sorted(set(L)) for i in S: data = L[:] data.remove(i) for j in permutations(data): ret.append([i] + j) return ret junretsu = permutations([1, 1, 1, 2, 2, 3]) #順列の個数 print( len(junretsu) )
前のだと14個の組合せ作ってたら5時間ぐらいかかってたのが1分ぐらいで終わるようになった。