docs: def in6_getRandomizedIfaceId(ifaceid, previous=None):
      """
      Implements the interface ID generation algorithm described in RFC 3041.
      The function takes the Modified EUI-64 interface identifier generated
      as described in RFC 4291 and an optional previous history value (the
      first element of the output of this function). If no previous interface
      identifier is provided, a random one is generated. The function returns
      a tuple containing the randomized interface identifier and the history
      value (for possible future use). Input and output values are provided in
      a "printable" format as depicted below.
      
      ex: 
  
      >>> in6_getRandomizedIfaceId('20b:93ff:feeb:2d3')
      ('4c61:76ff:f46a:a5f3', 'd006:d540:db11:b092')
  
      >>> in6_getRandomizedIfaceId('20b:93ff:feeb:2d3',
                                   previous='d006:d540:db11:b092')
      ('fe97:46fe:9871:bd38', 'eeed:d79c:2e3f:62e')
      """
  
      s = []
      if previous is None:
          #d = b"".join(map(chr, range(256)))
          d = list(range(256))
          for i in range(8):
              s.append(random.choice(d))
          s = bytes(s)
          previous = s
      s = inet_pton(socket.AF_INET6, "::"+ifaceid)[8:] + previous
      import hashlib
      s = hashlib.md5(s).digest()
      s1,s2 = s[:8],s[8:]
      s1 = bytes([(s1[0]) | 0x04]) + s1[1:]  
      s1 = inet_ntop(socket.AF_INET6, b"\xff"*8 + s1)[20:]
      s2 = inet_ntop(socket.AF_INET6, b"\xff"*8 + s2)[20:]    
      return (s1, s2)