通过base-n数增加

时间:2015-11-28 04:52:30

标签: python iteration base

我试图递增所有可能的base-n数字,其中数字由字符列表表示。

例如,

对于基数为5的数字(其中$total = car::getTotal(); if($total > 8) { for($i = 1; $i <= intval(ceil(1.0 * $total / $limit)); $i++) { echo '<a href="index.php?page=' . $i . '">' . $i . '</a>; } } )限制为4个位置,基数为5的数字由列表表示:

n = 5

增量看起来像

digits=['a','b','c','d','e']

a, b, c, d, e, aa, ab, ac, ad, ae, ba, bb, bc, ... , eeee n=5

中,python中最实用的方法是什么?

1 个答案:

答案 0 :(得分:5)

您可以使用itertools.product获得结果,例如

>>> from itertools import product
>>> base = 3
>>> ["".join(item) for i in range(1, base) for item in product('abcde', repeat=i)])
['a',
 'b',
 'c',
 'd',
 'e',
 'aa',
 'ab',
 'ac',
 'ad',
 'ae',
 'ba',
 'bb',
 'bc',
 'bd',
 'be',
 'ca',
 'cb',
 'cc',
 'cd',
 'ce',
 'da',
 'db',
 'dc',
 'dd',
 'de',
 'ea',
 'eb',
 'ec',
 'ed',
 'ee']
  

在python中最实用的方法是什么,n = 5或n = 105

我想说,根本不要创建列表。你可能会耗尽计算机的内存。更好地使用迭代器并在需要时使用该值。这正是product返回迭代器的原因。