题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
不想用三个循环,用了2个循环+去除某个元素的形式,感觉好像更复杂了……
li=[1,2,3,4]
li2=[1,2,3,4]#避免循环1中删改li中元素的影响
nums=[]
#循环1
for i in range(4):
li3=[]
li.pop(i)
li3.extend(li) #避免循环2中删改li中元素的影响
#循环2
for j in li:
li.remove(j)
num1=str(j)+str(li[1])+str(li[0])
num2=str(j)+str(li[0])+str(li[1])
nums.extend([int(num1),int(num2)])
#将li复位成未删改前的格式
del li[:]
li.extend(li3)
#将li复位成未删改前的格式
del li[:]
li.extend(li2)
print(nums,len(nums))
共 4x3x2=24 种结果
结果如下
[243, 234, 342, 324, 432, 423, 143, 134, 341, 314, 431, 413, 142, 124, 241, 214, 421, 412, 132, 123, 231, 213, 321, 312] 24