Windows许可证密钥的所有排列组合

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

由于微软决定用无限的智慧来创build许可证标签,而且我无法清楚地读取许可证密钥,这意味着我无法使用自动化stream程注册我的笔记本电脑。

通过把笔记本电脑放在一个angular度,我已经能够validation大部分的代码,但几个字母是模棱两可的(再次感谢微软在标签中使用容易误读的字符)。

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

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

其中方括号中的字符不明确,因此它是8BB8HN6G

制作16个组合。

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

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

免责声明:是的,我知道这不是Python代码。 它只是popup到我的脑海,我只是不得不把它写下来。

最简单的方法是使用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 
 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/

神奇果冻豆Keyfinder是一个免费的实用工具,用于从您的registry中检索用于安装Windows的产品密钥(cd key)。 它还有一个社区更新的configuration文件,可以检索许多其他应用程序的产品密钥。

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

如果您在Windows 7中直接使用Windows随时升级选项,则无需知道许可证密钥是什么。

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

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

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