2015-07-17 1 views
0

Я пытаюсь сделать программу, которая вычисляет все возможные комбинации заданных символов ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 ... но только на 8 мест, так как, AAAAAAAA, AAAAAAAA, AAAAAAAA ...питона вычисляет все возможные комбинации заданных символов

что-то подобное в качестве начала

для г в xrange (999999999):

print ''.join(['ABCDEFGHIJKLMNOPQRSTUVWXYZ'[j] 

для J в [(я // D)% 36 для г в (63,54,45,36 , 27,9,3,1)]])

я понял это моя работа над Спасибо за помощь

+0

Что вы пробовали? У вас есть код? Мы можем лучше ответить на ваш вопрос, если это понятно, кратким и конкретным. – johnnyRose

+1

Прошло некоторое время с тех пор, как я взял дискретную математику, но если моя память служит мне правильно, у вас есть 218 триллионов комбинаций в этом наборе ..... это займет пару дней, чтобы рассчитать на среднем компьютере ... Если вы все еще хотите пройти через это, вам нужно быть более конкретным в том, что вам нужно. У вас проблемы с математикой и алгоритмом? или проблемы с реализацией структуры данных для хранения 218 триллионов объектов? –

+0

@BrennenSprimont У меня проблемы с кодом. Я обновил свой вопрос, чтобы показать, что я имею в виду. – ghost

ответ

1
mystring = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890' 
from itertools import product 
combos = [''.join(i) for i in product(mystring, repeat = 8)] 
type(combos) 

Возвращает список комбинаций.

+0

Приятно, но возможно, что-то вроде этого, но больше для i в xrange (81): print '. .join ([' abcd '[j] для j в [(i // d)% 3 для d in (27 , 9,3,1)]]) – ghost

+0

@ghost попробуйте это – invoketheshell

+0

Я пробовал, что ничего не происходит – ghost

3

Это, вероятно, займет некоторое время, так как существует много возможных перестановок. Так что просто знайте это заранее. Мое решение:

from itertools import permutations 

options = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890' 
possibilities = [w for w in permutations(options, 8)] 

Это составит список всех возможных паролей, хранящихся в переменной возможностей.

+0

У меня есть ошибка, подобная Traceback (последний последний звонок): Файл «/ Пользователи/*****/Documents/untitled», строка 4, в возможности = [w для w в перестановках (опции, 8)] MemoryError – ghost

+0

Возможно, это связано с тем, что существует так много перестановок, что у вас заканчивается память. Как @Brennon Sprimont сказал, что существует огромное количество возможных перестановок. –

+0

Я попытался сократить его до> options = 'AB', и ничего не происходит. – ghost