1_无重复数字的三位数

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
'''

from functools import reduce


L1 = [1,2,3,4]
L2 = [[x,y,z] for x in L1 for y in L1 for z in L1 if x!=y and x!=z and y!=z]
print('共',len(L2),'个:')
for i in range(len(L2)):
    print(i+1,': ', reduce(lambda x, y: x * 10 + y, L2[i]))
    
L2 = [str(x)+str(y)+str(z) for x in L1 for y in L1 for z in L1 if x!=y and x!=z and y!=z]

print('共',len(L2),'个:')
for i in range(len(L2)):
    print(i+1,': ', L2[i])

print('共',len(L2),'个:')
for i, v in enumerate(L2):
    print(i+1,': ', v)
    

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值