Just on first look your main while loop in the scan function isn't right.
Try changing it to:
for i in range(times):
host = list1[0] + "." + list1[1] + "." + list1[2] + "." + list1[3]
while threading.activeCount() >= threads:
time.sleep(.1)
Scanner(str(host), self.port).start()
nlist1[3] = ((++nlist1[3]) %256 )
if nlist1[3] != 0:
nlist1[2] = ((++nlist1[2]) %256 )
if nlist1[2] != 0:
nlist1[1] = ((++nlist1[1]) %256 )
if nlist1[1] != 0:
nlist1[0] = ((++nlist1[0]) %256 )