@jcbbnsnkom

Как сделать чтобы продолжал работать с определенного значения?

def iter_all_strings_without_triplicates(size, last_two_digits = (None, None, None, None, None, None, None, None, None ,None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None ,None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)):
    a,b,q,w,e,r,t,y,u,i,o,p,s,d,f,g,h,j,k,l,z,x,v,n,m,aq,aw,ae,ar,at,ay,au,ai,ao,ap,aa,ad,af,ag,ah,aj,ak,al,az,ax,ac,av,ab,an,am,bq,bw,be,br,bt,by,bu,bi,bo,bp,ba,bs,bd = last_two_digits
    if size == 0:
        yield ""
    else:
        for c in "0123456789abcdef":
            if a == b == q == w == e == r == t == y == u == i == o == p == s == d == f == g == h == j == k == l == z == x == v == n == m == aq == aw == ae == ar == at == ay == au == ai == ao == ap == aa == ad == af == ag == ah == aj == ak == al == az == ax == ac == av == ab == an == am == bq == bw == be == br == bt == by == bu == bi == bo == bp == ba == bs == bd == c:
                continue
            else:
                for rest in iter_all_strings_without_triplicates(size-1, (b,q,w,e,r,t,y,u,i,o,p,s,d,f,g,h,j,k,l,z,x,v,n,m,aq,aw,ae,ar,at,ay,au,ai,ao,ap,aa,ad,af,ag,ah,aj,ak,al,az,ax,ac,av,ab,an,am,bq,bw,be,br,bt,by,bu,bi,bo,bp,ba,bs,bd,c)):
                    yield c + rest

for s in iter_all_strings_without_triplicates(20):
    print(s)

ребят помогите сделать скрипт так чтобы можно было начать с того места генерацию с которого мне надо например (07023a07049bc00f0feb или a7361acf00bad0000feb) чтобы но продолжал последовательность
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
lxstvayne
@lxstvayne
Люблю Python
Спагетти код получился у вас, достаточно разобраться, что такое шестнадцатеричное число, чтобы написать правильный код.
def hex_digits_range(from_: int, to: int, zfill_value: int = 20):
    for i in range(from_, to + 1):
        yield format(int(hex(i), base=16), 'x').zfill(zfill_value)


gen = hex_digits_range(500, 515)

for el in gen:
    print(el)


Просто запоминайте как-то последнее число, которое у вас получилось, и подставляйте в генератор первым аргументом его на единицу больше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы