def generate_close_chunks(chunk):
    """Generates close chunks, numbers with one bit difference with original chunk

        returns list of chunks

    """
    size = len('{:b}'.format(chunk))
    close_chunks = []
    for i in range(size):
        # apply a XOR operations with a zero-vector with just one bit as 1, the bit is
        # moved each iteration
        close_chunks.append(chunk ^ (1 << i))
    close_chunks.append(chunk)
    return close_chunks