code: function between (a, b) {
  
      var s = '', i = 0
  
      while (true) {
  
        var _a = chars.indexOf(a[i])
        var _b = chars.indexOf(b[i])
       
        if(_a == -1) _a = 0
        if(_b == -1) _b = chars.length - 1
  
        i++
  
        var c = chars[
            _a + 1 < _b 
          ? Math.round((_a+_b)/2)
          : _a
        ]
  
        s += c
  
        if(a < s && s < b && c != exports.lo)
          return s;
      }
    }
docs: /*
  SOME EXAMPLE STRINGS, IN ORDER
  
  0
  00001
  0001
  001
  001001
  00101
  0011
  0011001
  001100101
  00110011
  001101
  00111
  01
  
  if you never make a string that ends in the lowest char,
  then it is always possible to make a string between two strings.
  this is like how decimals never end in 0.
  
  example:
  
  between('A', 'AB')
  
  ... 'AA' will sort between 'A' and 'AB' but then it is impossible
  to make a string inbetween 'A' and 'AA'.
  instead, return 'AAB', then there will be space.