Problem: Find all the different ways to arrange a string
E.G. 123 can be arranged--123, 132, 213, 231, 321, 312
So I honestly have no idea how to go about engineering the solution to this problem, as I have not done any official Data Structures and Algorithms courses, but I came up with a more mathematical solution that I was able to turn into code:
if __name__ == '__main__':
string = 'ABCD'
count = 0
for first in string:
if first is not string[0]:
print()
for second in string:
if second is first:
continue
for third in string:
if third in [second, first]:
continue
for fourth in string:
if fourth in [third, second, first]:
continue
count += 1
print(str(first)+str(second)+str(third)+str(fourth), end=', ')
print('
{} possible combinations'.format(count))
but I have to manually add or remove for-loops depending on the size of the string. What methodology should I use to go about this problem
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…