# -*- coding: cp1251 -*- def permute_in_place(a): a.sort() yield list(a) if len(a) <= 1: return first = 0 last = len(a) while 1: i = last - 1 while 1: i = i - 1 if a[i] < a[i+1]: j = last - 1 while not (a[i] < a[j]): j = j - 1 a[i], a[j] = a[j], a[i] # swap the values r = a[i+1:last] r.reverse() a[i+1:last] = r yield list(a) break if i == first: a.reverse() return if __name__ == '__main__': konto=[] file= open('output1.txt', 'rb') for line in file: konto.append(line.strip()) for a in permute_in_place(['с','о','в','л','о']): for ip in konto: if ''.join(a)==''.join(ip): print ''.join(a) #print konto
Из слов в словаре находит те в которых встречается сочетание таких заданных букв
Надо задать параметр,допустим дали набор из 8 букв,а слово точно состоит из 5 букв
import itertools konto=[] file= open('output1.txt', 'rb') for line in file: konto.append(line.strip()) slovo=['с','о','о','л','в','д'] d= list(itertools.product(slovo, repeat=5)) n=o for i in d: n += 1 for ip in konto: if ''.join(i)==''.join(ip): print ''.join(i) print 'использовал',n,'комбинаций'
помогите оптимизировать