beirry 发表于 2019-10-29 07:35:36

刚开始学习哈哈哈
for a in range(1,5):
   for b in range(1,5):
          for c in range(1,5):
               if i != a and a != b and b != c:
                  print("%d%d%d" % (a,b,c))

lilinru75 发表于 2019-11-12 05:25:23

强大的 itertools
import itertools
a = range(1,5)
y = list(itertools.permutations(a,3))

for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i != j and i != k and j != k:
                print(i,j,k)

xinyun 发表于 2019-11-12 14:59:05


for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
          if x != y andx != z and y != z:
                print(x,y,z)

开心就好了吧 发表于 2019-11-12 20:28:48

for u in range(1,5):
for m in range(1,5):
for w in range(1,5):
if u!=m and u!=w and m !=
end=int('u'+'m'+'w')
print(end)

开心就好了吧 发表于 2019-11-12 20:30:48

for u in range(1,5):
for m in range(1,5):
for w in range(1,5):
if u!=m and u!=w and m !=w:
end=int('u'+'m'+'w')
print(end)
len(print)

newbison 发表于 2019-11-13 10:19:53

本帖最后由 newbison 于 2019-11-13 10:20 编辑

list = [(x, y, z) for x in range(1, 5) for y in range(1, 5) for z in range(1, 5) if x != y if x != z if y != z]
print(list)
print(len(list))

学Python不开车 发表于 2019-11-16 10:44:48

for x in range(1,5):
    for y in range(1,5):
      for z in rang(1,5):
            if x!=y and y!=z and x!=z:
            #(此处不能写x != y != z,否则会出现 x和z相等的情况,如121 131等,至于为啥我还不知道)
                print(x,y,z)

15891720771 发表于 2019-11-19 14:32:24

a = []
for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if (i != j) and (i != k) and (j!= k):
                a.append(100*i+10*j+k)
print('一共有%d个三位数,分别是:\n'%len(a),a)

Jung 发表于 2019-11-19 15:59:30


def fun2(a,b,c,d):
    L1 = []
    for N1 in (a,b,c,d):
      for N2 in (a,b,c,d):
            for N3 in (a,b,c,d):
                if((N1!=N2) and (N1!=N3) and (N2!=N3)):
                  L1.append(N1*100 +N2*10 + N3)
    print(L1)
#试用与任意4个不相等的数字组合不重复地3位数

海月清辉 发表于 2019-11-23 13:58:35

达达里昂 发表于 2017-4-2 13:53
list = []
for x in range(1,5):
    for y in range(1,5):


这个完成了所有要求

海月清辉 发表于 2019-11-23 14:21:08

新手·ing 发表于 2017-3-24 21:43
这是我的解答,欢迎大家一起交流。

亲   121 122 这种都不符合题目要求吗?

海月清辉 发表于 2019-11-23 14:23:34

伤心地铁 发表于 2017-3-24 22:08
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):


假如   if x != y andx != z or y != z:    会怎么样?

llbb6458 发表于 2019-11-26 22:53:09

for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i != j != k:
                print("{}{}{}".format(i,j,k))
让三个数连贯起来了看的更舒服一点

天下一统2014 发表于 2019-11-30 21:05:46

i = []
for a in range(1,5):
    for b in range(1,5):
      for c in range(1,5):
            d = a*100+b*10+c
            if d not in i:
                i.append(d)
print(len(i))
print(i)

Python学好 发表于 2019-12-7 11:18:34

a=[]
b=
for i in b:
    for j in b:
      for k in b:
            if (i!=j) and (j!=k) and (k!=i):
                c=i*100+j*10+k
                a.append(c)
print(a)

yang123ke 发表于 2020-1-9 06:40:02

学习到了

Yl10 发表于 2020-1-9 14:15:21

list=[]
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
            if x!=y and x!=z and y!=z:
                a=100*x+10*y+z
                list.append(a)
print('一共有',len(list),'种组合')
print('分别为',list)

ka233siji 发表于 2020-1-16 09:15:00

count =0
for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i != k and i != j and j != k:
                print(i,j,k)
                count+=1
print(count)

ouyunfu 发表于 2020-2-11 06:57:06

def f1(L):
    count=0
    for i in L:
      L1=L.copy()
      L1.remove(i)
      for j in L1:
            L2=L1.copy()
            L2.remove(j)
            for k in L2:
                print(i*100+j*10+k)
                count+=1
    return count
print(f1())

Geoffreylee 发表于 2020-2-11 11:50:27

求个通解

from functools import reduce

# 初始数字列表
list_num =
# 要组成多少位互不相同且无重复的数字
n = 4

# 辅助列表
num_s = []
num_lst = []

def f(lst, n):
    global num_s
    global num_lst

    # 递归出口
    if len(num_s) == n:
      i = reduce(lambda x, y: x*10+y, num_s)
      num_lst.append(i)

    else:
      for i in range(len(lst)):
            # 从列表弹出,获取数字
            num = lst.pop(i)
            # 压栈
            num_s.append(num)
            # 递归
            f(lst, n)
            # 出栈
            num_s.pop()
            # 归还数字到原列表
            lst.insert(i, num)


f(list_num, n)
print('满足条件有{}个:'.format(len(num_lst)))
print(num_lst)
页: 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15
查看完整版本: Python:每日一题 1