def getSequenceVariants(self, x1 = 0, x2 = -1, maxVariantNumber = 128) :
		"""returns the sequences resulting from all combinaisons of all polymorphismes between x1 and x2. The results is a couple (bool, variants of sequence between x1 and x2), bool == true if there's more combinaisons than maxVariantNumber"""
		if x2 == -1 :
			xx2 = len(self.defaultSequence)
		else :
			xx2 = x2
		
		polyStart = None
		nbP = 1
		stopped = False
		j = 0
		for p in self.polymorphisms :
			if p[0] >= xx2 :
				break
			
			if x1 <= p[0] :
				if polyStart == None :
					polyStart = j
				
				nbP *= len(p[1])
				
				if nbP > maxVariantNumber :
					stopped = True
					break
			j += 1
		
		if polyStart == None :
			return (stopped, [self.defaultSequence[x1:xx2]])
		
		return (stopped, self.__getSequenceVariants(x1, polyStart, j, list(self.defaultSequence[x1:xx2])))