[python] Windows 라이선스 키의 모든 순열

랩톱 밑면에 Windows 7 라이선스 키가 필요한 랩톱 용 Windows 8 업그레이드를 신청해야합니다.

Microsoft는 무한한 지혜로 낡은 라이선스 레이블을 만들기로 결정했고 라이선스 키를 명확하게 읽을 수 없기 때문에 자동화 된 프로세스를 사용하여 Windows 업그레이드 제안에 랩톱을 등록 할 수 없습니다.

랩톱을 빛에 비스듬히 들고 있으면 대부분의 코드를 확인할 수 있었지만 일부 문자는 모호합니다 (라벨에서 쉽게 잘못 읽을 수있는 문자를 사용하여 Microsoft에 다시 한 번 감사드립니다).

다음 (난독 화 된) 라이센스 키가 있습니다.

MPP6R-09RXG-2H[8B]MT-[B8]K[HN]M9-V[6G]C8R

대괄호 안의 문자가 모호하므로 8또는 B, B또는 8, H또는 N, 6또는 G입니다.

16 가지 조합 만들기.

itertools를 사용하여이 라이센스 키의 가능한 순열을 생성하는 것이 적절합니까, 아니면 더 나은 방법이 있습니까?

기여자 덕분에 올바른 키를 얻었습니다. 키가 유효한지 확인하는 매우 편리한 방법은 Windows 7 제품 키 검사기를 사용하는 것 입니다.



답변

면책 조항 : 예, 이것이 Python 코드 가 아니라는 것을 알고 있습니다. 그냥 내 마음에 튀어 나는 간단 했다 그것을 적어.

가장 간단한 방법은 셸 확장을 사용하는 것입니다.

$ echo MPP6R-09RXG-2H{8,B}MT-{B,8}K{H,N}M9-V{6,G}C8R
MPP6R-09RXG-2H8MT-BKHM9-V6C8R
MPP6R-09RXG-2H8MT-BKHM9-VGC8R
MPP6R-09RXG-2H8MT-BKNM9-V6C8R
MPP6R-09RXG-2H8MT-BKNM9-VGC8R
MPP6R-09RXG-2H8MT-8KHM9-V6C8R
MPP6R-09RXG-2H8MT-8KHM9-VGC8R
MPP6R-09RXG-2H8MT-8KNM9-V6C8R
MPP6R-09RXG-2H8MT-8KNM9-VGC8R
MPP6R-09RXG-2HBMT-BKHM9-V6C8R
MPP6R-09RXG-2HBMT-BKHM9-VGC8R
MPP6R-09RXG-2HBMT-BKNM9-V6C8R
MPP6R-09RXG-2HBMT-BKNM9-VGC8R
MPP6R-09RXG-2HBMT-8KHM9-V6C8R
MPP6R-09RXG-2HBMT-8KHM9-VGC8R
MPP6R-09RXG-2HBMT-8KNM9-V6C8R
MPP6R-09RXG-2HBMT-8KNM9-VGC8R


답변

from itertools import product
for perm in product('8B', 'B8', 'HN', '6G'):
    print 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % perm


답변

조합을 생성하는 또 다른 방법

>>> ['MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R' % (a, b, c, d)
...  for a in '8B' for b in 'B8' for c in 'HN' for d in '6G']
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R',
 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R',
 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R',
 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R',
 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']
>>> 


답변

itertools와 functools를 동시에 사용하는 것은 어떻습니까?

>>> from operator import mod
>>> from functools import partial
>>> from itertools import product
>>> map(partial(mod, 'MPP6R-09RXG-2H%sMT-%sK%sM9-V%sC8R'), product('8B', 'B8', 'HN', '6G'))
['MPP6R-09RXG-2H8MT-BKHM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKHM9-VGC8R', 'MPP6R-09RXG-2H8MT-BKNM9-V6C8R', 'MPP6R-09RXG-2H8MT-BKNM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KHM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KHM9-VGC8R', 'MPP6R-09RXG-2H8MT-8KNM9-V6C8R', 'MPP6R-09RXG-2H8MT-8KNM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKHM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKHM9-VGC8R', 'MPP6R-09RXG-2HBMT-BKNM9-V6C8R', 'MPP6R-09RXG-2HBMT-BKNM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KHM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KHM9-VGC8R', 'MPP6R-09RXG-2HBMT-8KNM9-V6C8R', 'MPP6R-09RXG-2HBMT-8KNM9-VGC8R']


답변

http://www.magicaljellybean.com/keyfinder/

Magical Jelly Bean Keyfinder는 레지스트리에서 창을 설치하는 데 사용되는 제품 키 (cd 키)를 검색하는 프리웨어 유틸리티입니다. 또한 다른 많은 애플리케이션의 제품 키를 검색하는 커뮤니티 업데이트 구성 파일도 있습니다.

키를 원하는 설치에서 실행하십시오.


답변

Windows Anytime Upgrade 를 사용하는 경우Windows 7 내에서 직접 옵션 라이선스 키가 무엇인지 알 필요가 없습니다.

운영 체제가 활성화되어있는 한 Windows 8은 기존 운영 체제를 덮어 쓰고 Windows 7의 모든 항목을 “Windows-old”폴더에 저장합니다. 파일이나 다른 것이 필요하지 않으면 삭제할 수 있습니다.

Windows 업그레이드 프로세스는 정품 인증 된 Windows 운영 체제를 찾습니다. Windows XP도 업그레이드를 설치하기 전에 정품 인증을 받으면됩니다.

Anytime Upgrade를 통해 구매할 때 Windows 8 라이선스 키를 이메일로 받게됩니다. 상점에서 업그레이드를 구매하는 경우 라이선스 키와 다운로드 URL 만 받거나 Windows Anytime Upgrade에 키를 연결하기 만하면 자동으로 다운로드 및 설치됩니다.


답변