Сгенерировать все перестановки любой длины

Как бы вы сгенерировали все возможные перестановки списка b (1,6,8,3,9,5) , включая перестановки разной длины? Пример:

List a = [1,2,3]
generateperms(a)
1,2,3
3,1,2
3,2,1
1,3,2
2,1,3
2,3,1
2,3
1,2
1,3
2,1
3,2
3,1

И так далее, и получить все перестановки каждой длины?

РЕДАКТИРОВАТЬ: Я просто собираюсь использовать это, написанное на python, работает достаточно хорошо:

import itertools  
a = ['a','b','c']  
for i in range(len(a)):  
    print list(itertools.permutations(a,i+1))  
11
задан a sandwhich 6 February 2013 в 20:41
поделиться