给出一个字符串和一个整数k，编写一个函数来查找字符串中最长的连续字串，其中每个字符最多出现k次。
```
s = 'ababbc'
k = 2
```
```python
def longest_substring(s, k):
    from collections import defaultdict
    counts = defaultdict(int)
    num_unique_chars = len(set(s))
    max_length = 0
    for i in range(num_unique_chars):
        counts = defaultdict(int)
        num_unique_current = 0
        for j in range(i, len(s)):
            if counts[s[j]] == 0:
                num_unique_current += 1
            counts[s[j]] += 1
            if num_unique_current > k:
                break
            max_length = max(max_length, j - i + 1)
    return max_length
```

在使用该函数时，对于给定的字符串`s`和整数`k`：


```python
s = 'ababbc'
k = 2

longest_substring(s, k)
```


输出：

```
5
```

该函数首先找出字符串`s`中的所有唯一字符，然后在每个唯一字符的位置上，它会在字符的所有可能连续子串中找到最长的子串，该子串中每个字符都不多于`k`次出现。