Generate list of config dictionarie(s) that represent a interval of time. Used to be passed into add() or remove().
        For example::

            genInterval(month=(1,4), week(1,4))
            # generate list contains from first to third week in from January to March

        Args:
            month (tuple): (start, end) month in a year, from 1 to 12
            week (tuple): (start, end) week in a month, from 1 to 4
            day (tuple): (start, end) day in a month, from 1 to 31
            weekday (tuple): (start, end) weekday in a week, from 0 to 7. 0 and 7 both represent Sunday
            hour (tuple): (start, end) hour in a day, from 0 to 24
            minute (tuple): (start, end) minute in an hour, from 0 to 59

        Returns:
            list: a list of dictionarie(s) with form [{'Day':12, 'Month':3}, {}, etc]

def genInterval(self,
                    month=(),
                    day=(),
                    week=(),
                    weekday=(),
                    hour=(),
                    minute=()):
        '''Generate list of config dictionarie(s) that represent a interval of time. Used to be passed into add() or remove().
        For example::

            genInterval(month=(1,4), week(1,4))
            # generate list contains from first to third week in from January to March

        Args:
            month (tuple): (start, end) month in a year, from 1 to 12
            week (tuple): (start, end) week in a month, from 1 to 4
            day (tuple): (start, end) day in a month, from 1 to 31
            weekday (tuple): (start, end) weekday in a week, from 0 to 7. 0 and 7 both represent Sunday
            hour (tuple): (start, end) hour in a day, from 0 to 24
            minute (tuple): (start, end) minute in an hour, from 0 to 59

        Returns:
            list: a list of dictionarie(s) with form [{'Day':12, 'Month':3}, {}, etc]
        '''
        dic = {
            'Month': month,
            'Day': day,
            'Week': week,
            'Weekday': weekday,
            'Day': day,
            'Hour': hour,
            'Minute': minute
        }
        dic = {k: v for k, v in dic.items() if v != ()}
        # e.g. dic: {'month': (1,5), 'day': (2,4)}
        grandList = []
        for k in dic:
            # e.g. k: 'month', dic[k]: (1,5)
            l = []
            # rangeTuple = (dic[k][0], dic[k][1] + 1)  # e.g. (1,6)
            rangeTuple = dic[k]
            for num in range(rangeTuple[0],
                             rangeTuple[1]):  # e.g. 1, 2, 3, 4, 5
                l.append({k: num})  # e.g. [{'month': 1}, {'month': 2}]
            grandList.append(l)  # e.g. [[list of month], [list of day]]
        print(grandList)
        # grandList: [[list of month], [list of day]]
        # l: [[a,a1,a2,...], [b,b1,b2,...]]
        # combineDict return: [{a,b}, {a,b1}, {a,b2}, {a1,b}, {a1,b1}, {a1, b2}, {a2,b}, {a2,b1}, {a2,b2}]
        return crossCombine(grandList)