擅长:python、mysql、java
<p>您应该使用生成器而不是创建完整列表:</p>
<pre><code>def all_addresses():
ip_is = [i for i in range(256)]
ports = [i for i in range(1024,49152)]
# note (...) instead of [...] to create a generator instead of a list;
# separate |for|s to iterate over the lists individually
return (str(i1)+"."+str(i2)+"."+str(i3)+"."+str(i4)+":"+str(p)
for i1 in ip_is
for i2 in ip_is
for i3 in ip_is
for i4 in ip_is
for p in ports)
for addr in all_addresses():
print addr
</code></pre>
<p>这样您就不会耗尽内存,但仍然需要非常非常长的时间来遍历所有这些地址。在</p>