generator.py 文件源码

python
阅读 38 收藏 0 点赞 0 评论 0

项目:rexploit 作者: DaniLabs 项目源码 文件源码
def combinationRange(self, pattern, lengths, ranges):
        """
        Recursive function that create all possibilities
        :param pattern: the pattern
        :param lengths: the pattern's lengths
        :param ranges:
        :return: all patterns
        """
        if not pattern:
            return None

        if lengths and ranges:
            newPattern = []

            # Get first range and first length
            r = ranges.pop(0)
            l = int(lengths.pop(0))

            myRange = self.splitRange(r)
            if not myRange:
                return None

            comb = combinations_with_replacement(myRange, l)

            try:
                i = 0
                while i <= self.__maximum:
                    result = [''.join(comb.next())][0]
                    replace = "[" + r + "]"
                    for p in pattern:
                        newPattern.append(p.replace(replace, result, 1))
                    i += 1
            except StopIteration:
                pass

            return self.combinationRange(newPattern, lengths, ranges)
        else:
            return pattern
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号