问个 Python 遍历的问题

2018-11-06 13:14:50 +08:00
 Amone

xz2cs4641-n231-x512-9sv5-bs1s41o2853x

上面 37 个字符 每个字符从 0-9,a-z 每个字符都组一遍

一开始用 for 嵌套遍历弄,然而 python 嵌套限制 20 个。


嵌套到最后面运行的时候,就提示: SyntaxError: too many statically nested blocks 太多静态嵌套的块 python 限制 20 个嵌套


有什么方式能解决么 QAQ

3866 次点击
所在节点    Python
26 条回复
ankelo
2018-11-06 23:32:37 +08:00
我只能说,这个属于新手问题
AX5N
2018-11-06 23:44:36 +08:00
高中知识,排列组合....
freakxx
2018-11-07 00:01:00 +08:00
@tuding
每个位的生成都 for 一遍 string+digit,然后 再拼接 return 回去;

@Amone
import string
def random_generator(size=6, chars=string.ascii_letters + string.digits):
return "".join(random.choice(chars) for _ in range(size))
wizardoz
2018-11-07 00:21:21 +08:00
递归或栈
wizardoz
2018-11-07 00:22:11 +08:00
另外,任何一种语言都不要手写 37 层嵌套循环
epleone
2018-11-07 09:05:53 +08:00
```python
from itertools import permutations

_str = 'xz2cs4641-n231-x512-9sv5-bs1s41o2853x'

for i in permutations(_str , len(_str )):
print(i)

```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/504981

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX