我希望Python中的程序能够打印数字或字符串字符的所有可能组合。
例如:
123
213
231
132
321
312
金额是!3,但我不知道如何处理。 我想过使用递归,但我不知道如何实现它。
itertools.permutations
可以为您做到这一点。
import itertools
for c in itertools.permutations('123'):
print(''.join(c))
我们假设
X="123"
我们想要找到所有可能的组合。
import itertools
for c in itertools.permutations(X) :
print(''.join(c))
如果您不想导入 itertools 库,您可以使用 GeeksForGeeks:
中的代码def printCombination(arr, n, r):
data = [0]*r;
combinationUtil(arr, data, 0,
n - 1, 0, r);
def combinationUtil(arr, data, start,
end, index, r):
if (index == r):
for j in range(r):
print(data[j], end = " ");
print();
return;
i = start;
while(i <= end and end - i + 1 >= r - index):
data[index] = arr[i];
combinationUtil(arr, data, i + 1,
end, index + 1, r);
i += 1;
arr = [1, 2, 3, 4, 5];
r = 3;
n = len(arr);
printCombination(arr, n, r);