Sim. A biblioteca itertools com as funções combinations e permutations cumpre esse propósito. Veja o código abaixo:
from itertools import permutations
from itertools import combinations
if __name__ == '__main__':
myList = [0,1,2]
sizeList=len(myList)
allCombinations=[]
for theSize in range(0,sizeList+1):
for combination in combinations(myList,theSize):
allCombinations.append(combination)
print allCombinations
n=3
thePermutations=list(permutations(range(n)))
print thePermutations