>>> import itertools >>> import socket >>> l = ['lemon', 'orange', 'apple'] >>> suf = ['.com', '.org', '.net'] >>> for i in itertools.chain(*[map(lambda a: i + a, l) for i in l]): ... try: ... for s in suf: print "%s - %s" % (i+s, socket.gethostbyname(i+s)) ... except socket.gaierror: ... print '%s - no such domain' % (i+s) ... lemonlemon.com - 204.13.160.129 lemonlemon.org - no such domain lemonorange.com - 207.58.151.96 lemonorange.org - no such domain lemonapple.com - 82.98.86.169 lemonapple.org - no such domain orangelemon.com - 66.199.187.182 orangelemon.org - no such domain orangeorange.com - 208.254.26.132 orangeorange.org - 127.0.0.1 orangeorange.net - 81.2.197.230 orangeapple.com - 207.7.108.211 orangeapple.org - no such domain applelemon.com - 66.33.221.126 applelemon.org - no such domain appleorange.com - 64.202.189.170 appleorange.org - no such domain appleapple.com - 82.98.86.176 appleapple.org - no such domain >>>