Вы можете получить доступ за пределами cpanel, используя Awstats , для настройки Awstats в Ubuntu вы можете увидеть http://ubuntu-tutorials.com/2008/01/16/configuring-awstats-on -ubuntu-сервер /
def getPermutations(string, prefix=""):
if len(string) == 1:
yield prefix + string
else:
for i in xrange(len(string)):
for perm in getPermutations(string[:i] + string[i+1:], prefix+string[i]):
yield perm
Или без аккумулятора:
def getPermutations(string):
if len(string) == 1:
yield string
else:
for i in xrange(len(string)):
for perm in getPermutations(string[:i] + string[i+1:]):
yield string[i] + perm
Это избегает len(string)
- глубокая рекурсия и является в целом хорошим способом обработать генераторы в генераторах:
from types import GeneratorType
def flatten(*stack):
stack = list(stack)
while stack:
try: x = stack[0].next()
except StopIteration:
stack.pop(0)
continue
if isinstance(x, GeneratorType): stack.insert(0, x)
else: yield x
def _getPermutations(string, prefix=""):
if len(string) == 1: yield prefix + string
else: yield (_getPermutations(string[:i]+string[i+1:], prefix+string[i])
for i in range(len(string)))
def getPermutations(string): return flatten(_getPermutations(string))
for permutation in getPermutations("abcd"): print permutation
flatten
позволяет нам продолжать прогресс другого генератора просто yield
луг это, вместо того, чтобы выполнить итерации через него и yield
луг каждый объект вручную.
Python 3.3 добавит yield from
к синтаксису, который допускает естественную делегацию подгенератора:
def getPermutations(string, prefix=""):
if len(string) == 1:
yield prefix + string
else:
for i in range(len(string)):
yield from getPermutations(string[:i]+string[i+1:], prefix+string[i])
Внутренний вызов к getPermutations - это - генератор, также.
def getPermutations(string, prefix=""):
if len(string) == 1:
yield prefix + string
else:
for i in range(len(string)):
getPermutations(string[:i]+string[i+1:], prefix+string[i]) # <-----
необходимо выполнить итерации через это с для цикла (см., что @MizardX отправляет, который вычеркнул меня к секундам!)