2013-05-26 47 views
0

我试着使用itertools.permutations生成排列,但我很困惑如何做到这一点n个数字。如何在python中编写程序生成所有n位数字,只有4位和7位数字?

+0

让我们来看看你得到了什么至今。 – mogul

+0

你想要多少位数?你也可以使用rand()函数。我会: 1)生成0到1之间的n个数字并将它们存储在一个数组中。 2)if(n [i] == 0)n [i] = 4; if(n [i] == 1)n [i] = 7; 3)然后我总结所有的数字在n []中,第一个数字乘以1,第二个乘以10,第三乘以100等... :) – 2013-05-26 08:33:51

回答

5

我会用itertools.product代替:

In [26]: for i in itertools.product(['4', '7'], repeat=2): 
    ....:  print int(''.join(i)) 
    ....: 
44 
47 
74 
77 

repeat说法是你的n

+0

有没有什么办法可以将输出从一个元组变成一个字符串或int,例如“47”而不是(4,7) –

+0

@KartikKhare:你必须制作'4'和'7'字符串。从那里,你可以做'int(''。join(i))''。 – Blender

+0

再次感谢sir –

1

我会用二进制的,如果你需要的所有2位数的数字,只有74的数字:

最多在2位数基地-2是11b3,所以:

0 => 00b 
1 => 01b 
2 => 10b 
3 => 11b 

然后通过7(任意)由41更换0,赠送:44, 47, 74, 77

相关问题