Windows许可证密钥的所有排列

时间:2013-01-30 14:27:27

标签: python itertools

我需要为笔记本电脑申请Windows 8升级,我需要笔记本电脑底部的Windows 7许可证密钥。

因为微软凭借其无限的智慧决定创建易损的许可证标签,并且我无法清楚地阅读我的许可证密钥,这意味着我无法使用自动化流程注册我的笔记本电脑以获得Windows升级优惠。

通过将笔记本电脑与灯光成一定角度,我已经能够验证大部分代码,但有些字母含糊不清(再次感谢Microsoft在标签中使用容易误读的字符)。

我有以下(混淆)许可证密钥,

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

方括号中的字符不明确,因此它是8BB8H或{{1} },N6

制作16种组合。

使用itertools生成此许可证密钥的可能排列是否合适?还是有更好的方法?

感谢贡献者,我得到了正确的密钥。检查密钥是否有效的一种非常方便的方法是使用Windows 7 product key checker

6 个答案:

答案 0 :(得分:164)

免责声明:是的,我知道这不是Python代码。它突然出现在我脑海中,我只是已经将其写下来。

最简单的方法是使用shell扩展:

$ 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

答案 1 :(得分:59)

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

答案 2 :(得分:17)

生成组合的另一种方法

>>> ['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']
>>> 

答案 3 :(得分:9)

如何同时使用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']

答案 4 :(得分:3)

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

  

Magical Jelly Bean Keyfinder是一款免费软件,可检索用于从注册表安装Windows的产品密钥(cd密钥)。它还有一个社区更新的配置文件,可以检索许多其他应用程序的产品密钥。

只需在您想要密钥的安装上运行它。

答案 5 :(得分:1)

如果直接在Windows 7中使用Windows Anytime Upgrade选项,则无需知道许可证密钥是什么。

只要操作系统被激活,Windows 8就会覆盖现有的操作系​​统,并将Windows 7中的所有内容放入“Windows旧”文件夹中,除非您需要文件或其他内容,否则可以将其删除。

Windows升级过程会查找已激活的Windows操作系统,即使Windows XP在安装升级之前已激活它也会执行。

通过Anytime Upgrade购买时,您将通过电子邮件发送Windows 8许可证密钥。如果您从商店购买升级版,您只需获得许可证密钥并下载URL或者您只需将密钥插入Windows Anytime Upgrade即可下载并自行安装。